Как я могу записать видео как вывод команды top в течение установленного периода времени?
top
Команда выводит вид реального процесса и их использование ресурсов в системе.
Я хотел бы запустить программу при установке на сервер, которая запускает множество различных процессов с непредсказуемыми идентификаторами PID и фиксирует изменяющиеся выходные данные top
, без необходимости полагаться на соединение SSH из среды рабочего стола. Желательно, чтобы я мог "воспроизвести" это в той же среде CLI, как если бы это было видео, но мог бы приемлемо переместить файл в другое место, чтобы просмотреть его таким образом.
Есть ли способ, используя только командную строку, с прямого терминала на установке сервера, чтобы я мог записать эти выходные данные в течение определенного периода времени? Либо путем ввода значения для времени, либо путем ручного запуска и остановки процесса записи.
3 ответа
Вы можете использовать утилиты "script" и "scriptreplay" для достижения этой цели.
запустить скрипт с опцией --timing:
скрипт --timing=top.timing topscript
выполните команду top, дайте ей работать столько, сколько вы хотите
выйдите из top, используя q или control-c.
выйдите из сеанса сценария с помощью control-D (EOF) или введите команду exit
запустите scriptreplay для воспроизведения сценария:
scriptreplay top.timing topscript
Обычный режим работы top
не подходит для сохранения вывода в файл.
Вы можете использовать -b
(пакетный) режим top
вместе с соответствующим интервалом времени для проверки (-d
) и количество итераций для подсчета (-n
).
Вы также можете упомянуть конкретные PID (-p
) проверять только.
Например:
top -b -d 5 -n 3 -p 1089,2345 >output.txt
побежит top
в пакетном режиме будет выполнять 3 итерации через 5 секунд каждая и будет контролировать только два упомянутых идентификатора PID (1089,2345). Вывод будет сохранен в output.txt
,
Измените значения в соответствии с вашими потребностями.
Это не совсем то же самое, что top
, но вы можете использовать этот скрипт:
while true; do
echo
echo $(date)
echo
ps -eo pid,user,pri,ni,vsize,rss,stat,pcpu,pmem,time,wchan --sort=-pcpu | head -20
sleep 5
done > ps.log
У вас будет более или менее top
информация в файле ps.log
, Для получения подробной информации о ps
команда см man ps
,