2013-07-08 10 views
14

Próbowałem wypróbować instalację htop w pliku tekstowym (np. htop > text.txt), ale tekst jest zniekształcony przez formatowanie ciągów znaków (patrz poniżej). Czy istnieje sposób na ładniejsze, czytelne dla człowieka wydruki?Wyjście htop do pliku czytelnego dla człowieka

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

Odpowiedz

41

autor htop tutaj.

Nie, nie ma "miłego" sposobu na wyprowadzenie wyjścia htopa do pliku. Jest to aplikacja interaktywna i wykorzystuje terminalowe procedury przerysowywania w celu tworzenia interfejsu (w związku z tym, pipowanie ma sens, jak na przykład pipeline vim do pliku tekstowego - otrzymasz podobne wyniki).

Aby uzyskać informacje o procesach w formacie tekstowym, użyj "ps". Na przykład: ps auxf > file.txt daje wiele łatwych do przeanalizowania informacji (lub ps aux, jeśli nie życzysz sobie formatowania drzewa - zobacz man ps, aby uzyskać więcej opcji).

+3

Dzięki za odpowiedź. Próbuję znaleźć użycie na procesor --- który htop tak ładnie działa. Czy istnieje sposób dostępu do tego poprzez 'ps'? – DilithiumMatrix

+3

thanx, ale człowiek robi eksport do jakiegoś pliku, aby uczynić to, co bardziej użyteczne, – themis

1

Install Recode, następnie zakodować go na UTF-8:

$htop | recode utf-8 > test.txt 

Następnie cat plik i powinno być dobrze.

+1

może być dobre jako obejście, ale gdy już go wypróbowałem, nie udało mu się pobrać całej listy procesów i zawsze wyświetlało tylko podzbiór, nie niezawodny sposób na uzyskanie informacji. – fduff

9

Miałem tę samą potrzebę, a skończyło się na użyciu top zamiast htop a zapewnia tryb wsadowy za pośrednictwem flagi -b.

-b: praca w trybie Batch Rozpoczyna góry w 'trybie wsadowym, co może być przydatne do wysyłania wyjście od góry do innych programów lub do pliku. W tym trybie góra nie będzie akceptować danych wejściowych i będzie działać aż do limitu iteracji ustawionego za pomocą opcji wiersza polecenia -n lub do momentu zabicia.

Tak na przykład:

top -b -n 1 

Nadzieja to pomaga, nawet jeśli nie jest to za pomocą htop.

-2

Może to brzmieć naprawdę nieobyczajnie, jednak jeśli posiadasz kilka monitorów, możesz uruchomić htop, podczas gdy "nagrywaj mój pulpit" przechwytuje ten obszar. To więcej wideo i może nie pomóc w wyszukiwaniu i sortowaniu, ale będzie wyglądać ładnie i ładnie.

12

htop wyjścia ANSI escape code do używania kolorów i przesuwania kursora po terminalu. Istnieje świetny program linii komend aha, który może być użyty do konwersji ANSI na HTML.

Ubuntu/Debian instalacja

apt-get install aha 

Save htop wyprowadzane jako plik HTML

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

Po prostu doskonały, dzięki! – Shevchuk

+0

Zobacz także http://www.pixelbeat.org/scripts/ansi2html.sh – pixelbeat

+0

Przykład użycia ansi2html.sh znajduje się na https://news.ycombinator.com/item?id=10323333 i połączono z nim żądanie funkcji dodaj opcję -b do htop, aby uprościć przetwarzanie wsadowe. – pixelbeat

1

Można również użyć skryptu przed uruchomieniem htop w trybie, który przekieruje czasy Do plik do późniejszego odtwarzania. W sferze "kolejnej pracy" i "dobra do pokazania i opowiedzenia".

script -t -a /var/tmp/script.htop.out 2> /var/tmp/script.htop.out.timings 
htop 

Następnie do odtwarzania

scriptreplay /var/tmp/script.htop.out.timings /var/tmp/script.htop.out 
2

Polecenie wyjścia tekstowym. (Wymaga instalowania aha i html2text.)

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

Czym to się różni od https://stackoverflow.com/a/30224271/230468? – DilithiumMatrix

+0

@DilithiumMatrix To daje wynik czysty tekst dowolny tagów HTML. – k0fe

+0

@DilithiumMatrix Nie pamiętam dodać polecenia wyjścia. Edytowane teraz. Próbowałeś? Tego właśnie potrzebujesz? :) – k0fe

Powiązane problemy