Arch Linux で top を使用して、CPU とメモリの統計をファイルに記録しようとしています。特定のプロセスに興味があり、以下に示すように必要なパラメーターを取得します。
top -b -n1 -p 310 | tail -fn 1 | awk '{printf "%s,%s,%s,%s\n",$1,$12,$9,$10}'
これにより、次のようなコマンドラインへの出力が得られます。
310,name,0.0,10.5
したがって、このコマンドを 1 秒の遅延で 10 回実行し、出力をログファイルに書き込む場合は、次のようにします。
top -b -n10 -p 310 -d 1 | tail -fn 1 | awk '{printf "%s,%s,%s,%s\n",$1,$12,$9,$10}' >> log.txt
しかし、ログファイルに行ごとに出力する代わりに、最後の出力しか取得しません。したがって、ログファイルには 1 行しか含まれていませんが、top は 10 回実行されているはずです。
ここで何が間違っていますか?
PS:ログファイルではなくコマンドラインに出力すると、1行(最後の出力)しか生成されません...