Compact loggers and proc owners report
[khome.git] / home / lib / login_functions.sh
index 7635e5d..e17c5c6 100644 (file)
@@ -411,6 +411,24 @@ bar_gauge() {
     '
 }
 
+flat_top_5() {
+    sort -n -k 1 -r \
+    | head -5 \
+    | awk '
+        {
+            cur  = $1
+            max  = $2
+            name = $3
+            pct  = cur / max * 100
+            printf "%s%s:%.2f%%", sep, name, pct
+            sep = " "
+        }
+
+        END {printf "\n"}
+        ' \
+    | column -t
+}
+
 motd_batt() {
     case "$(uname)" in
         'Linux')
@@ -549,7 +567,25 @@ motd() {
 
     echo
 
-    echo 'Loggers'
+    echo 'Process owners (top 5)'
+    ps -eo user \
+    | awk '
+        NR > 1 {
+            count_by_user[$1]++
+            total++
+        }
+
+        END {
+            for (user in count_by_user)
+                print count_by_user[user], total, user
+        }
+        ' \
+    | flat_top_5 \
+    | indent "${indent_unit}"
+
+    echo
+
+    echo 'Loggers (top 5)'
     awk '
         {
             split($5, prog, "[")
@@ -568,9 +604,7 @@ motd() {
             for (prog in count)
                 print count[prog], total, prog
         }' \
-    | sort -n -k 1 -r \
-    | bar_gauge -v width=30 -v num=1 -v ch_left=' ' -v ch_right=' ' -v ch_blank=' ' \
-    | column -t \
+    | flat_top_5 \
     | indent "${indent_unit}"
 }
 
This page took 0.041495 seconds and 4 git commands to generate.