私はそれぞれ約20人のユーザーを持ついくつかのコンピューティングサーバーを管理しています。これを使用してhtop
現在のリソース使用量を確認しますが、特定のユーザーの累積メモリとCPU使用量のログがある場合は非常に役立ちます。htop
BashまたはBashでこれを表示または記録する方法はありますか?
答え1
これを使用して、累積使用top -bn1 -U {user}
量を取得するために処理できるファイルを生成できます。
このパラメーターを-bn1
使用すると、ジョブtop
は非対話モードで実行され、完了すると一度だけ出力されます。その後、さらに処理するためにその出力をどこにでもパイプすることができます。
例えば、
top -bn1 -U {user} > user_log.txt
他のスクリプトでさらに処理するには
または、次のようにすることもできます。
top -bn1 -U {user} | awk {file_processing_script} >> user_log.txt
file_processing_script
この場合、awk
スクリプトは必要な方法でデータを処理できます。 1つのアイデアは、awk 'NR>7{cpu += $9; mem += $10} END {printf "%.2f\t%.2f\n", cpu, mem}'
実行中に特定のユーザーの合計CPUとメモリ使用量を単純に出力することです。これらのいくつかを追加すると、ユーザーのCPUとメモリ使用量を示す素晴らしいテーブルが作成されます。
答え2
私はあなたが欲しいと思います:htop -u someusername