Linuxのtopコマンドを使用して、CPU、RAM、プロセスの計算時間、およびプロセスが生成するすべての子プロセスを監視しようとしています。
次の構文を使用して、topコマンドの出力を保存できることがわかりました。
$ top -b > top.txt
次に、pythonスクリプトを使用して結果を解析しています。しかし、監視している特定のプロセスとその子プロセスを特定するのに問題があります。
Topの実行中にf
と入力してPPIDsフィールドをtopに追加できることがわかりましたが、これは-b
オプションを指定したバッチモードでは機能しません。
結果を解析するときに興味のあるプロセスを見つけることができるように、PPIDを表示してtopコマンドの出力を保存する方法はありますか?
バッチモードでtopを使用するときに出力ファイルにPPIDを含めることについての私の質問です。 CPUを監視するより良い提案がある場合は、RAMおよびプロセスも大歓迎です。
インタラクティブなトップディスプレイにPPID(またはその他のフィールド)を追加したら、次のコマンドを使用して構成を保存するだけです。 W (大文字 w)。次に終了します(q)とtop -b
、インタラクティブにtopに加えた変更からのフィールドを含めて表示します。
top
は、プロセスを表示するためのps
のインタラクティブな更新バリアントとして作成されました。ここでps
コマンドを使用する方が簡単で自然です。たとえば、親プロセス情報の場合:
ps -ejf > top.txt
または、ユーザーにとっては
ps -ejf | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt
または、ツリー形式で、プロセスツリーの親/子を視覚化します。
ps auxfww > top.txt
PPIDと単純なツリー形式の組み合わせ:
ps -ejfH | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt