2013-07-08 4 views
14

Я попытался подключить htop к текстовому файлу (например, htop > text.txt), но он дает мне текст, искаженный форматированием строк (см. Ниже). Есть ли способ получить более приятный, удобочитаемый результат?htop output to human readable file

^[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   \ 

ответ

41

htop автор здесь.

Нет, «хороший» способ получить выход htop в файл. Это интерактивное приложение и использует терминальные процедуры перерисовки для создания своего интерфейса (поэтому, при использовании протокола он имеет такой же смысл, как, например, piping vim в текстовый файл - вы получите аналогичные результаты).

Чтобы получить информацию о ваших процессах в текстовом формате, используйте «ps». Например, ps auxf > file.txt дает вам много простого для анализа информации (или ps aux, если вы не хотите древовидного форматирования - см. man ps для получения дополнительных опций).

+3

Спасибо за ваш ответ. Я специально пытаюсь найти использование для каждого процессора --- что делает htop так хорошо. Есть ли способ получить доступ к этому через 'ps'? – DilithiumMatrix

+3

thanx, но человек делает экспорт в некоторый файл, чтобы сделать его более полезным. – themis

1

Установите перекодирования, а затем кодировать его в UTF-8:

$htop | recode utf-8 > test.txt 

Тогда кошка файл, и вы должны быть хорошо.

+1

может быть хорошим как обходным путем, но когда я его пробовал, он не смог захватить весь список процессов и всегда отображал только подмножество, а не надежный способ получить информацию. – fduff

9

У меня была такая же потребность, и в итоге я использовал top вместо htop. A обеспечивает пакетный режим через флаг -b.

-b: Пакетный режим работы Запуск вверх в «пакетный режим», который может быть полезен для отправки выход сверху других программ или в файл. В этом режиме верхняя часть не будет принимать входные данные и будет работать до тех пор, пока не будет установлен лимит итераций с параметром командной строки «-n» или до тех пор, пока не будет убит.

Так, например:

top -b -n 1 

Надеется, что это помогает, даже если это не используется htop.

-2

Это может звучать действительно noobish, однако, если у вас есть несколько мониторов, вы можете запустить htop, пока «запись моего рабочего стола» будет захвачена этой областью. Его больше видео и может не помочь в поиске и сортировке, но это будет выглядеть красиво и красиво.

12

htop выходы ANSI escape code использовать цвета и перемещать курсор вокруг терминала. Существует отличная программа командной строки aha, которая может быть использована для преобразования ANSI в HTML.

Ubuntu/Debian установка

apt-get install aha 

Save HTOP выход в HTML файл

echo q | htop | aha --black --line-fix > htop.html 
+0

Просто отлично, спасибо! – Shevchuk

+0

См. Также http://www.pixelbeat.org/scripts/ansi2html.sh – pixelbeat

+0

Для примера, используя ansi2html.sh, см. Https://news.ycombinator.com/item?id=10323333 и связанный с ним запрос функции добавьте параметр -b в htop, чтобы упростить пакетную обработку – pixelbeat

1

Вы также можете использовать скрипт до запуска 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 
2

Эта команда выводит простой текст. (Это требует установки aha и html2text.)

echo q | htop -C | aha --line-fix | html2text -width 999 | 
grep -v "F1Help\|xml version=" > file.txt 
+0

Как это отличается от https://stackoverflow.com/a/30224271/230468? – DilithiumMatrix

+0

@DilithiumMatrix Это дает вам результат в чистом тексте без каких-либо html-тегов. – k0fe

+0

@DilithiumMatrix Забыл добавить команду вывода. Отредактировано прямо сейчас. Ты пробовал? Это то, что вам нужно? :) – k0fe