上位のコマンド出力をファイルに保存する方法
Linux の top コマンドは、システム稼働時間と負荷平均、使用メモリ、に関するシステム統計をリアルタイムで表示するためにシステム管理者によってよく使用されます。実行中のタスク、プロセスまたはスレッドの概要、および実行中の各プロセスに関する詳細情報。
ただし、実行中のシステムをリアルタイムで表示する以外に、top コマンドの出力を -b
フラグを使用してファイルに保存することもできます。このフラグは、top にバッチ モードで動作するように指示し、-n
フラグを使用して、コマンドが出力する反復の量を指定します。
以下の例では、top コマンドの出力を現在の作業ディレクトリの top.txt
ファイルにリダイレクトします。 -n 引数は、コマンドのスナップショットを 1 つだけ指定したファイルに送信するために使用されます。
top -b -n 1 > top.txt
結果のファイルを読み取るには、cat コマンドなどのコマンド ライン ファイル リーダー ユーティリティを多少なりとも使用します。
less top.txt
トップ コマンドの 5 つの繰り返しを取得するには、以下の抜粋に示すようにコマンドを実行します。
top -b -n 5 > top-5iterations.txt
結果ファイルから実行中のタスクの数のみを表示するには、以下のコマンド例に示すように grep フィルターを使用します。
cat top-5iterations.txt | grep Tasks
トップ ユーティリティで特定のプロセスのスナップショットを取得するには、PID (-p)
フラグを指定してコマンドを実行します。実行中のプロセスの PID を取得するには、実行中のプロセスの名前に対してpidof コマンドを発行します。
この例では、PID の 3 つのスナップショットを取得することで、top コマンドを介してcronプロセスを監視します。
pidof crond
top -p 678 -b -n3 > cron.txt
cat cron.txt
以下の例に示すように、for 反復ループを使用すると、PID を介してプロセス統計を 2 秒ごとに表示できます。ループの出力をファイルにリダイレクトすることもできます。上の例で示したものと同じ cron 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 コマンドを使用してシステムとプロセスの統計を監視および収集する方法のほんの数例です。