obtener CPU por usuario

obtener CPU por usuario

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]

información relacionada