Tente isso
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -5
A saída 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]
Trabalhando com monit, preciso criar um alerta que obtenha o uso da CPU dos usuários do sistema, portanto:
top -b -n 1 -u user1 | awk 'NR>7 { sum += $9; } END { print sum; }'
parece uma boa solução, mas eu não tenho certeza sobre confiável porque quando eu faço o comando acima, sempre mudo (obviamente) o valor. Então, eu preciso de um uso "exato" de cpu pelo usuário dentro de 2 a 5 segundos, porque o VALUE enviará como um alerta de e-mail.
Tente isso
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -5
A saída 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]
Tags process monitoring top