
Bei der Arbeit mit Monit muss ich eine Warnung erstellen, die die CPU-Auslastung von Systembenutzern ermittelt, also:
top -b -n 1 -u user1 | awk 'NR>7 { sum += $9; } END { print sum; }'
scheint eine gute Lösung zu sein, aber ich bin mir nicht sicher, ob sie zuverlässig ist, denn wenn ich den obigen Befehl ausführe, ändere ich jedes Mal (offensichtlich) den Wert. Ich brauche also eine „genaue“ Angabe der CPU-Nutzung durch den Benutzer innerhalb von 2-5 Sekunden, da der WERT wie eine E-Mail-Benachrichtigung gesendet wird.
Antwort1
Versuche dies
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -5
Die Ausgabe sieht wie folgt aus:
%CPU PID USER COMMAND
0.6 18695 mysql /usr/sbin/mysqld
0.1 961 root [kdmflush]
0.1 937 root [kdmflush]
0.1 1025 root [jbd2/dm-2-8]