Как скрыть "простаивающие" (как CPU, так и RAM) процессы сверху? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть команда 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?Я пытался взломать его, но он просто не работает.

1 Ответ

0 голосов
/ 20 ноября 2018

grep сделает:

... | grep -v "CPU:0.0,MEM:0.0"

со страницы руководства:

-v, --invert-match
    Invert the sense of matching, to select non-matching lines.
...