トップコマンドの出力をファイルに保存する方法


Linuxのトップコマンドは、システムの稼働時間および負荷平均使用中のメモリに関するリアルタイムでシステム統計を表示するためにシステム管理者によって非常に使用されています。実行中のタスク、プロセスまたはスレッドの概要、および実行中の各プロセスに関する詳細情報。

ただし、実行中のシステムをリアルタイムで表示する以外に、topコマンドを -b フラグを使用してファイルに保存することもできます。これは、topをバッチモードで実行するように指示します。コマンドが出力する反復回数を指定する/ code> flag。

次の例では、 topコマンドの出力を現在の作業ディレクトリの top.txt ファイルにリダイレクトします。 -n 引数を使用して、言及したファイルにコマンドのスナップショットを1つだけ送信します。

$ top -b -n 1 > top.txt

結果のファイルを読み取るには、catコマンドなどのコマンドラインファイルリーダーユーティリティを使用します。

$ less top.txt

topコマンドを5回繰り返すには、以下の抜粋のようにコマンドを実行します。

$ top -b -n 5 > top-5iterations.txt

結果ファイルから実行中のタスクの数だけを表示するには、以下のコマンド例に示すように、grepフィルタを使用します。

$ cat top-5iterations.txt | grep Tasks

トップユーティリティで特定のプロセスのスナップショットを撮るには、 PID (-p)フラグを付けてcommandを実行します。実行中のプロセスのPIDを取得するには、実行中のプロセスの名前に対して pidofコマンドを発行します。

この例では、 topコマンドを使用して cron プロセスをPIDの3つのスナップショットを撮って監視します。

$ pidof crond
$ top -p 678 -b -n3 > cron.txt
$ cat cron.txt

次の例に示すように、 for 繰り返しループを使用して、PIDを使用して2秒ごとにプロセス統計を表示できます。ループの出力はファイルにリダイレクトすることもできます。上記の例で示したものと同じクーロンPIDを使用します。

$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done	

ループ出力をファイルにリダイレクトします。

$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done >> cron.txt
$ cat cron.txt

これらは、 topコマンドを使用してシステムとプロセスの統計情報を監視および収集する方法のほんの一例です。