Чтобы сохранить команду Top в файл
Командная консоль Linux очень часто используется системными администраторами для отображения системной статистики в реальном времени относительно времени безотказной работы системы и средней загрузки, используемой памяти, запущенных задач, сводки процессов или потоков и подробной информации о каждом запущенном процессе.
Сохранение вывода команды Top
Во-первых, мы перенаправим вывод команды в файл top.txt в текущем рабочем каталоге, выполнив следующую команду:
# top -b -n 1 > top.txt
Затем прочитайте приведенный файл, используйте утилиту чтения файлов командной строки, такую как команда cat, с использованием less или more, как показано ниже.
# less top.txt top - 05:27:38 up 1:09, 1 user, load average: 0.36, 0.12, 0.11 Tasks: 228 total, 1 running, 227 sleeping, 0 stopped, 0 zombie %Cpu(s): 3.7 us, 1.9 sy, 1.2 ni, 91.8 id, 1.3 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 2029876 total, 331784 free, 743740 used, 954352 buff/cache KiB Swap: 2094076 total, 2091308 free, 2768 used. 1074884 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7801 root 20 0 41800 3832 3224 R 5.9 0.2 0:00.02 top 1 root 20 0 119744 5944 4040 S 0.0 0.3 0:02.69 systemd
Если после этого вам нужно захватить пять итераций команды top, выполните команду, как показано ниже:
# top -b -n 5 > top-5iterations.txt
Чтобы отображать только количество запущенных задач из результирующего файла, используйте фильтр grep, как показано в приведенном ниже примере команды:
# cat top-5iterations.txt | grep Tasks Tasks: 226 total, 1 running, 225 sleeping, 0 stopped, 0 zombie Tasks: 226 total, 2 running, 224 sleeping, 0 stopped, 0 zombie Tasks: 226 total, 1 running, 225 sleeping, 0 stopped, 0 zombie Tasks: 226 total, 2 running, 224 sleeping, 0 stopped, 0 zombie Tasks: 226 total, 1 running, 225 sleeping, 0 stopped, 0 zombie
Чтобы сделать снэпшот определенного процесса в утилите top, выполните команду с флагом PID (-p).
Чтобы получить PID выполняющегося процесса, введите команду pidof в соответствие с именем текущего процесса.
В этом примере мы будем контролировать процесс cron с помощью команды top, выполнив три моментальных снимка PID.
# pidof crond # top -p 678 -b -n3 > cron.txt # cat cron.txt top - 05:33:52 up 1:13, 1 user, load average: 0.60, 0.20, 0.13 Tasks: 0 total, 0 running, 0 sleeping, 0 stopped, 0 zombie %Cpu(s): 3.6 us, 1.8 sy, 1.1 ni, 92.2 id, 1.2 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 2029876 total, 328304 free, 747112 used, 954460 buff/cache KiB Swap: 2094076 total, 2091308 free, 2768 used. 1071512 avail Mem
Используя для цикла итерации, мы можем отображать статистику процесса через свой PID каждые две секунды, как показано в приведенном ниже примере.
Вывод цикла также может быть перенаправлен в файл.
# for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
Теперь вы должны перенаправить вывод цикла в файл.
# for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done >> cron.txt # cat cron.txt top - 05:33:52 up 1:13, 1 user, load average: 0.60, 0.20, 0.13 Tasks: 0 total, 0 running, 0 sleeping, 0 stopped, 0 zombie %Cpu(s): 3.6 us, 1.8 sy, 1.1 ni, 92.2 id, 1.2 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 2029876 total, 328304 free, 747112 used, 954460 buff/cache KiB Swap: 2094076 total, 2091308 free, 2768 used. 1071512 avail Mem
Это всего лишь несколько примеров того, как вы можете контролировать и собирать статистику системы и процессов с помощью команды top.