Вывод htop в человекообразный файл
Я попытался подключить htop
к текстовому файлу (например, htop > text.txt
), но он дает мне искаженный текст форматированием строк (см. ниже). Есть ли способ получить более приятный, удобочитаемый результат?
^[7^[[?47h^[[1;30r^[[m^[[4l^[[?1h^[=^[[m^[[?1000h^[[m^[[m^[[H^[[2J^[[1B ^[[36m1 ^[[m^[[1m[^[[m^[[32m||||||||||^[[31m||||||||||^[[30m^[[1m \
22.2%^[[m]^[[m ^[[36mTasks: ^[[1m159^[[m^[[36m total, ^[[32m^[[1m5^[[m^[[36m running^[[3;3H2 ^[[m^[[1m[^[[30m \
0.0%^[[m]^[[m ^[[36mLoad average: ^[[30m^[[1m1.11 ^[[m^[[m1.28 ^[[1m1.31 ^[[4;3H^[[m^[[36m3 ^[[m^[[1m[^[[m^[[32m||||||||||^[[30m^[[1m \
11.1%^[[m]^[[m ^[[36mUptime: ^[[1m9 days, 22:04:51^[[5;3H^[[m^[[36m4 ^[[m^[[1m[^[[30m 0.0\
%^[[m]^[[6;3H^[[m^[[36m5 ^[[m^[[1m[^[[m^[[31m||||||||||^[[30m^[[1m 11.1%^[[m]^[[7;3H^[[m^[[36m6 ^[[m^[[1m[^[[30m \
Ответы
Ответ 1
htop автор здесь.
Нет, нет "хорошего" способа получить вывод htop в файл. Это интерактивное приложение и использует терминальные процедуры перерисовки для создания своего интерфейса (поэтому, при его использовании он имеет такой же смысл, как, например, piping vim в текстовый файл - вы получите похожие результаты).
Чтобы получить информацию о ваших процессах в текстовом формате, используйте "ps". Например, ps auxf > file.txt
дает вам много простого для анализа информации (или ps aux
, если вы не хотите древовидного форматирования - см. man ps
для получения дополнительных опций).
Ответ 2
htop выводит код удаления ANSI, чтобы использовать цвета и перемещать курсор вокруг терминала. Существует отличная программа командной строки aha, которая может быть использована для преобразования ANSI в HTML.
Установка Ubuntu/Debian
apt-get install aha
Сохранить вывод htop в виде HTML файла
echo q | htop | aha --black --line-fix > htop.html
Ответ 3
У меня была такая же потребность, и в итоге я использовал top
вместо htop
. a обеспечивает пакетный режим с помощью флага -b
.
-b: Режим пакетного режима Начинается сверху в режиме "Пакетный режим", что может быть полезно для отправки вывода сверху на другие программы или в файл. В этом режиме верхняя часть не будет принимать входные данные и будет работать до тех пор, пока не будет установлен лимит итераций с параметром командной строки "-n" или до тех пор, пока не будет убит.
Итак, например:
top -b -n 1
Надеюсь, что это поможет, даже если это не используется htop
.
Ответ 4
Эта команда выводит обычный текст. (Требуется установка aha
и html2text
.)
echo q | htop -C | aha --line-fix | html2text -width 999 |
grep -v "F1Help\|xml version=" > file.txt
Ответ 5
Сначала установите recode, затем закодируйте его в utf-8:
$htop | recode utf-8 > test.txt
Затем cat файл, и вы должны быть хорошими.
Ответ 6
Вы также можете использовать script до запуска htop в режиме, который перенаправляет тайминги в файл для последующего воспроизведения. В области "еще одна работа вокруг" и "хорошо для шоу и рассказывать".
script -t -a /var/tmp/script.htop.out 2> /var/tmp/script.htop.out.timings
htop
Затем для воспроизведения
scriptreplay /var/tmp/script.htop.out.timings /var/tmp/script.htop.out
Ответ 7
Это может звучать действительно noobish, однако, если у вас есть несколько мониторов, вы можете запустить htop, пока "записывать мой рабочий стол" захватывает эту область. Его больше видео и может не помочь в поиске и сортировке, но это будет выглядеть красиво и красиво.