6

Я регистрирую вывод: top -b -n1 -c чтобы я мог отслеживать, какие процессы используют сколько памяти и ЦП каждую минуту. Когда в верхней части отображается полная командная строка (-c), текст командной строки усекается по краю экрана. Это идеально подходит для работы и отображения в терминале. Тем не менее, я отправляю STDOUT в файл для последующего анализа и хочу записать полное имя команды в журнал. Есть ли способ, которым я могу сказать top, чтобы использовать определенную ширину экрана? (Я знаю, что это максимум на 512, это было бы хорошо)

Есть ли лучший способ для достижения аналогичной цели: получать периодическую статистику о том, какие процессы запущены и сколько ресурсов они потребляют?

2 ответа2

3

Это похоже на работу:

COLUMNS=512 top -b -n1 -c

Похоже, что это дополняет строки с пробелами до 512 столбцов, по крайней мере, когда выходные данные передаются в другую программу, так что вы можете отфильтровать выходные данные следующим образом:

COLUMNS=512 top -b -n1 -c | sed 's/  *$//'

где этой звездочке предшествуют два пробела.

2

Я полагаю, что top не предназначался для этого, и вместо этого вы должны использовать ps .

$ ps axv
PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
   1 ?        Ss     0:07    314    31  3908    24  0.0 init [3]  
   2 ?        S      0:00      0     0     0     0  0.0 [kthreadd]
   3 ?        S      0:06      0     0     0     0  0.0 [ksoftirqd/0]
   4 ?        S      0:12      0     0     0     0  0.0 [migration/0]
   5 ?        S      0:10      0     0     0     0  0.0 [migration/1]
   6 ?        S      0:05      0     0     0     0  0.0 [ksoftirqd/1]
....

Смотрите man 1 ps для длинного списка вариантов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .