Я регистрирую вывод: top -b -n1 -c
таким образом, я могу отслеживать, которых процессы используют сколько памяти и ЦП каждую минуту. Когда вершина показывает полную командную строку (-c
), текст командной строки становится усеченным в краю экрана. Это прекрасно при выполнении и отображении в терминале. Однако я отправляю STDOUT в файл для парсинга позже и хочу полное зарегистрированное название команды. Существует ли способ, которым я могу сказать вершине использовать определенный экран width? (Я знаю это макси в 512, который был бы прекрасен),
Есть ли лучший способ достигнуть подобной цели: получите периодическую статистику, о которой работают процессы и сколько ресурсов они используют?
Это, кажется, работает:
COLUMNS=512 top -b -n1 -c
Это, кажется, заполняет строки пробелами к 512 столбцам, тем не менее, по крайней мере, когда вывод передается по каналу к другой программе, таким образом, можно хотеть отфильтровать вывод как это:
COLUMNS=512 top -b -n1 -c | sed 's/ *$//'
где той звездочке предшествуют два пробела.
Я предполагаю 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
для длинного списка опций.