2013-07-08 6 views
14

Ich habe versucht, Rohrleitungen htop in eine Textdatei (z htop > text.txt), aber es gibt ich durch Formatierung Strings verstümmelten Text (siehe unten). Gibt es eine Möglichkeit, eine schönere, menschenlesbare Ausgabe zu erhalten?htop Ausgabe an den Menschen lesbare Datei

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

Antwort

41

htop Autor hier.

Nein, es gibt keine „nette“ Art und Weise die Ausgabe von htop in eine Datei geleitet zu bekommen. Es ist eine interaktive Anwendung und nutzt Routinen Terminal neu zu zeichnen seine Schnittstelle zu erzeugen (also kochend es so viel Sinn macht, wie zum Beispiel Rohrleitungen vim in eine Textdatei - Sie ähnliche Ergebnisse erhalten werden).

Um die Informationen über Ihre Prozesse in einem Textformat, verwenden Sie „ps“ zu erhalten. Zum Beispiel gibt Ihnen ps auxf > file.txt viele einfache Informationen zu analysieren (oder ps aux wenn Sie nicht Baum-Formatierung wünschen - siehe man ps für weitere Optionen).

+3

Vielen Dank für Ihre Antwort. Ich versuche speziell, die Verwendung pro Prozessor zu finden - was htop so schön macht. Gibt es eine Möglichkeit, über 'ps' darauf zuzugreifen? – DilithiumMatrix

+3

thanx, aber man macht einen Export in eine Datei, um die Sache brauchbarer zu machen – themis

1

Installieren Recode zuerst, dann kodieren sie utf-8:

$htop | recode utf-8 > test.txt 

dann die Datei Katze und Sie sollten gut sein.

+1

könnte als Workaround gut sein, aber wenn ich es versucht habe, konnte es nicht alle Prozessliste zu greifen, und immer nur eine Teilmenge angezeigt, nicht ein zuverlässiger Weg, um die Informationen zu bekommen. – fduff

9

Ich hatte die gleiche Notwendigkeit, und endete mit top anstelle von htop ist ein Batch-Modus über die -b Flag.

-b: Batch-Modus-Betrieb Startet oben in ‚Batch-Modus‘, die für das Senden von Ausgabe von oben nach anderen Programmen oder in eine Datei nützlich sein könnte. In diesem Modus akzeptiert top keine Eingabe und wird ausgeführt, bis die Iterationsbeschränkung, die Sie mit der Befehlszeilenoption '-n' festgelegt haben, oder bis zum Abbruch ausgeführt wird.

So zum Beispiel:

top -b -n 1 

hoffe, das hilft, auch wenn dies nicht htop verwendet wird.

-2

Dies kann wirklich noobish klingen, aber wenn Sie mehrere Monitore haben htop ausgeführt haben könnte, während „mein Desktop-Record“ ist, diesen Bereich zu erfassen. Es ist eher ein Video und kann beim Suchen und Sortieren nicht helfen, aber es würde schön und hübsch aussehen.

12

htop Ausgänge ANSI escape code Farben zu verwenden, und den Cursor auf dem Terminal bewegen. Es gibt ein tolles Befehlszeilenprogramm aha, das verwendet werden kann, um ANSI in HTML zu konvertieren.

Ubuntu/Debian-Installation

apt-get install aha 

speichern htop Ausgabe als HTML-Datei

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

Einfach perfekt, danke! – Shevchuk

+0

Siehe auch http://www.pixelbeat.org/scripts/ansi2html.sh – pixelbeat

+0

Für ein Beispiel mit ansi2html.sh siehe https://news.ycombinator.com/item?id=10323333 und verlinkt gibt es eine Feature-Anfrage an fügen Sie eine Option -b zu htop hinzu, um die Stapelverarbeitung einfacher zu machen – pixelbeat

1

Sie auch das Skript vor der Ausführung htop in einem Modus, umleitet Timings ein verwenden können Datei für die spätere Wiedergabe. Im Bereich der ‚noch eine andere Arbeit um‘ und ‚gut für die Show und sagen‘.

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

Dann

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

Dieser Befehl gibt Klartext wiederzugeben. (Es erfordert aha und html2text installieren.)

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

Wie unterscheidet sich das von https://stackoverflow.com/a/30224271/230468? – DilithiumMatrix

+0

@DilithiumMatrix Dies gibt Ihnen sauberen Text ohne HTML-Tags. – k0fe

+0

@DilithiumMatrix Forgot add output command. Gerade bearbeitet. Hast du versucht? Das brauchst du? :) – k0fe

Verwandte Themen