Как записать видео, например, вывод команды top для заданного периода времени?

Команда top выводит вид системы в реальном времени процессов и их использование ресурсов в системе.

Я хотел бы запустить программу на установке сервера, которая запускает множество различные процессы, с непредсказуемыми PID, и фиксировать изменяющийся вывод top, не полагаясь на соединение ssh из среды рабочего стола. Предпочтительно, я хотел бы иметь возможность «переигрывать» это в той же среде CLI, как если бы это было видео, но мог бы перемещать файл в другом месте, чтобы просмотреть его следующим образом.

Есть ли способ , используя только командную строку, от прямого терминала при установке сервера, чтобы я мог записать этот вывод в течение определенного периода времени? Либо введите значение времени, либо вручную запустив и остановив процесс записи.

1
задан 6 August 2017 в 11:07

2 ответа

Обычный режим работы top не подходит для сохранения вывода в файле.

Вы можете использовать -b (пакетный) режим top вместе с соответствующим временным интервалом для проверки (-d) и количества итераций для count (-n).

Вы можете также указать конкретные PID (-p) для проверки только.

Для Пример:

top -b -d 5 -n 3 -p 1089,2345 >output.txt

будет запускать top в пакетном режиме, будет выполнять 3 итерации по 5 секунд каждый и будет контролировать только два упомянутых PID (1089,2345). Выход будет сохранен в output.txt.

Измените значения в соответствии с вашими потребностями.

6
ответ дан 23 May 2018 в 15:20
  • 1
    Я надеялся увидеть видеоподобное представление, но я полагаю, что мог бы написать скрипт, который сохраняет выходной пакетный режим сверху в отдельные файлы. Затем создайте цикл просмотра, который отображает содержимое каждого файла, разделенное тем же шагом времени, чтобы воссоздать эффект обычного режима работы top. Спасибо, что направил мою голову в правильном направлении :) – Arronical 2 December 2015 в 21:25
  • 2
    @Arronical Да, если это ваш план .. – heemayl 2 December 2015 в 21:31

Это не совсем то же самое, что 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 см. [F6].

1
ответ дан 23 May 2018 в 15:20

Другие вопросы по тегам:

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