Укажите экран width вершины в пакетном режиме

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

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

6
задан 14.10.2010, 21:05

2 ответа

Это, кажется, работает:

COLUMNS=512 top -b -n1 -c

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

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

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

5
ответ дан 07.12.2019, 16:04

Я предполагаю 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 для длинного списка опций.

2
ответ дан 07.12.2019, 16:04

Теги

Похожие вопросы