
Al trabajar con monit, necesito crear una alerta que indique el uso de la CPU por parte de los usuarios del sistema, por lo tanto:
top -b -n 1 -u user1 | awk 'NR>7 { sum += $9; } END { print sum; }'
Parece una buena solución, pero no estoy seguro de si es confiable porque cuando hago el comando anterior, cada vez cambio (obviamente) el valor. Entonces, necesito un uso "exacto" de la CPU por parte del usuario dentro de 2 a 5 segundos, porque el VALOR se enviará como una alerta por correo electrónico.
Respuesta1
Prueba esto
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -5
La salida será como
%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]