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 \
htop作者はこちら。
いいえ、htopの出力をファイルにパイプ処理する「良い」方法はありません。これはインタラクティブなアプリケーションであり、ターミナルの再描画ルーチンを使用してインターフェイスを生成します(したがって、パイプすると、たとえばvimをテキストファイルにパイプするのと同じくらい意味があり、同様の結果が得られます)。
プロセスに関する情報をテキスト形式で取得するには、「ps」を使用します。たとえば、ps auxf > file.txt
を使用すると、解析しやすい多くの情報が得られます(ツリー形式を希望しない場合はps aux
-その他のオプションについてはman ps
を参照してください)。
htop出力 ANSIエスケープコード 色を使用して、カーソルを端末の周りに移動します。 ANSIをHTMLに変換するために使用できる素晴らしいコマンドラインプログラム aha があります。
Ubuntu/Debianのインストール
apt-get install aha
htop出力をHTMLファイルとして保存
echo q | htop | aha --black --line-fix > htop.html
同じ必要性があり、top
の代わりにhtop
を使用することになりました。これは、-b
フラグを介してバッチモードを提供します。
-b:バッチモード操作topを「バッチモード」で起動します。これは、topから他のプログラムまたはファイルに出力を送信するのに役立ちます。このモードでは、topは入力を受け入れず、 '-n'コマンドラインオプションで設定した反復制限まで、または強制終了されるまで実行されます。
だから例えば:
top -b -n 1
これがhtop
を使用していない場合でも役立つことを願っています。
このコマンドはプレーンテキストを出力します。 (aha
とhtml2text
をインストールする必要があります。)
echo q | htop -C | aha --line-fix | html2text -width 999 |
grep -v "F1Help\|xml version=" > file.txt
最初にrecodeをインストールしてから、utf-8にエンコードします。
$htop | recode utf-8 > test.txt
次に、ファイルを猫にしてください。
また、後で再生するためにタイミングをファイルにリダイレクトするモードで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