top добавить команды фильтра через параметры командной строки - PullRequest
2 голосов
/ 19 марта 2019

Я пытаюсь добавить команды фильтра наверх для неинтерактивного использования.При использовании top можно задавать фильтры в интерактивном режиме, например,

$ top
Type: o
Enter: COMMAND=MyProcess

покажет только те процессы с «MyProcss» в команде.

Кроме того, настройки дисплея top можно сохранить в файл с символом «W» из командной строки в $ HOME / .toprc.Затем, когда снова запускается top, он будет использовать эти настройки дисплея вместо значений по умолчанию.

Но кажется, что фильтры, добавленные через "COMMAND = ...", не сохраняются в файле .toprc.Так можно ли добавить эти фильтры через командную строку, чтобы top мог выводить данные неинтерактивно?Я не могу использовать опцию top -p для отображения данных из определенных PID, так как у меня есть более 20 PID, которые необходимо отслеживать, и их можно добавить после вызова top.Кроме того, я не хочу выводить данные для всех 900+ процессов, запущенных на моей машине.

Наконец, я не хочу просто подбирать имена процессов, так как хочу, чтобы заголовок top былЧто ж.

Так что в идеале псевдо-команда была бы похожа, но это не работает:

top -b -o 'COMMAND=MyProcess' -o '!COMMAND=NotThisProcess'

1 Ответ

1 голос
/ 19 марта 2019

Согласно моей справочной странице top, -o только для порядка сортировки.Я не вижу параметров командной строки, чтобы указать «другой» фильтр.А опция -b исключает чтение пользовательского ввода для ввода в фильтре.

Предполагая, что ваш top похож на мой, есть 7 строк заголовков.Поэтому, если вы хотите видеть только процессы «MyProcess», вы можете сделать это:

top -b -n 1 | sed '8,$ {/MyProcess/! d}'

То есть, от строк до конца, удалить любую строку, которая не содержит MyProcess.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...