Вы можете использовать cat /proc/loadavg
с интервалами. Зачем вытаскивать его из top
? Он предназначен для активного мониторинга (в основном )и всегда будет использовать больше ресурсов, чем быстрое чтение loadavg
. Для списка процессов просто используйте ps
и отсортируйте с помощью флага —sort
. Например.
( while true ; do cat /proc/loadavg ; ps -aux | sort -nrk 3,3 | head -n 20 ; sleep 3 ; done ; ) | pipe...
или
( while true ; do cat /proc/loadavg ; ps -Ao user,uid,pid,comm,pcpu,tty —sort=-pcpu —no-headers | head -n 20 ; sleep 3 ; done ; ) | pipe...