web-dev-qa-db-ja.com

人間が読めるファイルへの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           \
25
DilithiumMatrix

htop作者はこちら。

いいえ、htopの出力をファイルにパイプ処理する「良い」方法はありません。これはインタラクティブなアプリケーションであり、ターミナルの再描画ルーチンを使用してインターフェイスを生成します(したがって、パイプすると、たとえばvimをテキストファイルにパイプするのと同じくらい意味があり、同様の結果が得られます)。

プロセスに関する情報をテキスト形式で取得するには、「ps」を使用します。たとえば、ps auxf > file.txtを使用すると、解析しやすい多くの情報が得られます(ツリー形式を希望しない場合はps aux-その他のオプションについてはman psを参照してください)。

54
Hisham H M

htop出力 ANSIエスケープコード 色を使用して、カーソルを端末の周りに移動します。 ANSIをHTMLに変換するために使用できる素晴らしいコマンドラインプログラム aha があります。

Ubuntu/Debianのインストール

apt-get install aha

htop出力をHTMLファイルとして保存

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

同じ必要性があり、topの代わりにhtopを使用することになりました。これは、-bフラグを介してバッチモードを提供します。

-b:バッチモード操作topを「バッチモード」で起動します。これは、topから他のプログラムまたはファイルに出力を送信するのに役立ちます。このモードでは、topは入力を受け入れず、 '-n'コマンドラインオプションで設定した反復制限まで、または強制終了されるまで実行されます。

だから例えば:

top -b -n 1

これがhtopを使用していない場合でも役立つことを願っています。

11
Szymon Jeż

このコマンドはプレーンテキストを出力します。 (ahahtml2textをインストールする必要があります。)

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

最初にrecodeをインストールしてから、utf-8にエンコードします。

$htop | recode utf-8 > test.txt

次に、ファイルを猫にしてください。

1
Ian

また、後で再生するためにタイミングをファイルにリダイレクトするモードで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
1
LoneWolf