解決策 1:
次のようなことを試すことができます:
while true; do ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 >> logfile.txt; printf "\n" >> logfile.txt; sleep 3; done
これにより、CPU 使用率の観点から上位 10 のプロセスが表示されます。 「head -10」の 10 を別の数に変更することで表示されるプロセスの数を変更できます。また、「sleep 3」の 3 を変更するか、「sleep 3」の部分を完全に削除することで更新頻度を変更できます。
解決策 2:
Top をチェックアウトすると、ほぼすべてのバイナリ ログが書き込まれ、GUI のようなトップを使用して 1 日のタイム スライスを確認できます (デフォルトでは 5 分ごとにデータが取得されます)。 http://www.atcomputing.nl/Tools/atop/
解決策 3:
munin は、ボックスのアクティビティに関する情報を取得するのに役立つ監視ツールの 1 つだと思います。また、sar、iostat、ps、top などのコマンド ライン ツールもあります。
解決策 4:
他の回答は、現在何が起こっているかを確認する方法を示しただけであり、システムが再起動されている場合は役に立ちません.
この情報を後世 (または課金、またはその他の用途) のために記録したい場合は、プロセス アカウンティングが必要です。
これは私が見つけた HOWTO ですが、正直に言うと、プロセス会計を使用してから 10 年になります。
http://tldp.org/HOWTO/Process-Accounting/
解決策 5:
ほぼリアルタイムの監視のための shawn のソリューションへのよりユーザーフレンドリーなアプローチ:
while true; do clear; ps -eo pcpu,pmem,pid,user,args --sort=-pcpu c|head -20; sleep 1; done
これにより、1 秒ごとに更新される上位 20 プロセスの静的ビューが提供されます。 ps コマンドの「c」オプションは、args コマンド全体ではなく、プロセスの実行可能ファイル名を出力します。代わりにコマンド情報全体が必要な場合は、このオプションを省略できます。 %memory usage 列も追加されました。