Вывод htop в человекообразный файл - программирование
Подтвердить что ты не робот

Вывод 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           \
4b9b3361

Ответ 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, пока "записывать мой рабочий стол" захватывает эту область. Его больше видео и может не помочь в поиске и сортировке, но это будет выглядеть красиво и красиво.