Ограничить команду top, чтобы отображать только топ X процессов в командной строке
Я не уверен, почему нет возможности в top
команда, которая делает это, как это кажется естественным запросом.
Если я трубу на выходе top
в head
, тогда список не обновляется, и я получаю статический вывод один раз. Я мог бы тогда принести watch
команда в действие, которое сделало бы работу. Но есть ли более простое решение?
5 ответов
> top
затем нажмите n
установить максимальное количество отображаемых задач.
При работе с top одним из наиболее важных ключей является помощь (h
или же ?
) чтобы увидеть доступные варианты (n
дается в помощь).
ОБНОВЛЕНИЕ (после комментария):
PERSONAL Configuration File
может помочь в пакетном режиме. Бежать top
затем установите максимальное количество задач, отображаемых с n
и использовать W
интерактивная команда для создания или обновления файла конфигурации. top
будет запущен в соответствии с файлом конфигурации в следующий раз.
Я использую трюк, специально для пакетного режима. Я направляю выход в grep с опцией "-A", чтобы показать N строк после совпадения.
Так как в первой строке top есть что-то вроде: "средняя нагрузка", я, например, grep:
$ top -d 5 -b|grep "load average" -A 15
top - 09:42:34 up 38 min, 1 user, load average: 0.22, 0.39, 0.53
Tasks: 294 total, 2 running, 291 sleeping, 0 stopped, 1 zombie
%Cpu(s): 3.5 us, 0.9 sy, 0.0 ni, 94.6 id, 0.5 wa, 0.3 hi, 0.1 si, 0.0 st
KiB Mem : 8065144 total, 2213800 free, 2733524 used, 3117820 buff/cache
KiB Swap: 24575996 total, 24575996 free, 0 used. 4613128 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2744 lrojas 20 0 3376820 752000 116588 R 20.2 9.3 9:30.01 firefox
1869 lrojas 9 -11 566164 18336 14300 S 5.2 0.2 2:35.78 pulseaudio
2401 lrojas 20 0 740092 200456 87256 S 2.4 2.5 0:57.29 skype
2402 lrojas 20 0 617872 172924 76172 S 2.2 2.1 0:57.17 skype
1333 root 20 0 459028 60992 48024 S 1.6 0.8 0:36.14 Xorg
1838 lrojas 20 0 2103336 184468 64724 S 1.4 2.3 0:56.85 gnome-shell
2359 lrojas 20 0 741212 35068 24620 S 1.4 0.4 0:06.83 gnome-terminal-
2404 lrojas 20 0 1867556 229912 83988 S 0.8 2.9 0:19.63 thunderbird
1249 apache 20 0 461436 10196 3404 S 0.4 0.1 0:00.57 httpd
Таким образом, он будет продолжен в пакетном режиме, всегда показывая только первые N строк вывода.
Полностью стандартное решение, для любой версии топ.
Возможно, вам следует добавить -b
параметр, который работает top
в пакетном режиме: watch -n 5 'top -b -d 5 | head -n 10'
Решение для MAC:
top -a -n20 | awk 'FNR>=11 && FNR<=31{print $0};FNR==31{exit}' > cpustat.txt
Вы можете создать файл конфигурации для top (например: запустите команду top в интерактивном режиме, затем нажмите «n» и напишите ограничение на количество процессов, затем нажмите «W», чтобы сохранить это в файле конфигурации).
На следующем шаге вы можете запустить top в пакетном режиме; параметр в файле конфигурации ограничивает вывод запрошенным значением. Итак, далее просто:
top -b > top.log
будет достаточно.