У меня есть команда linux на основе top, которая выводит мой текущий снимок задач (я собрал его из различных тем SE, поэтому он может быть неоптимальным, но он работает для меня):
top -bn 1 -i | grep "^ " | awk '{ printf("%s%s%s\n","
{CPU:"$9",","MEM:"$10",","CMD:"$12"}"); }' | tail -n +2 | gawk '{
print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }'
вывод выглядит примерно так:
[2018-11-20 18:09:11] {CPU: 0.0, MEM: 0.2, CMD: uwsgi}
[2018-11-20 18: 09: 11] {ЦП: 0.0, MEM: 0.0, CMD: uwsgi}
[2018-11-20 18:09:11] {ЦП: 0.0, MEM: 0.0, CMD: nginx}
[2018-11-20 18:09:11] {ЦП: 0.0, MEM: 0.0, CMD: nginx}
[2018-11-20 18:09:11] {ЦП: 0.0, MEM: 0.0, CMD:nginx}
На самом деле, я получаю около 300 строк за каждое выполнение моей команды.Я хотел бы удалить строки, которые имеют «CPU: 0.0, MEM: 0.0».
Я пробовал: top -i
, но это удаляет все «бездействующие» задачи, что означает «CPU: 0.0» -тем не менее, таким образом, я теряю все задачи, такие как: CPU: 0.0, MEM: 0.2 (которые я хочу сохранить)
Возможно, добавить что-то еще в часть команды awk?Я пытался взломать его, но он просто не работает.