質問: linux:プロセスごとのモニター、10分ごと、履歴アクセス付き 私は本当に私の質問をするより良い方法を知りませんでした、それであなたは恐ろしい名前の質問を受け取ります。私がやりたいことを説明します、多分それはあなたが私を助けるのを助けるでしょう。linuxマシンで、マシン上のすべてのプロセスを継続的に(10分ごとに)監視したいと思います。私が必要とする各プロセスからの情報は、名前、cpu使用率、割り当てられた(仮想)メモリ、および常駐(ram)メモリです。これらの定期的なレポートを見ると、次のようになります。process cpu ram virtual name1 % mb mb name2 % mb mb ...etc..etc これらのレポートは、日付/時刻のスコープ(範囲)を指定して後日アクセスできるように保存する必要があります。たとえば、12:00:001.12.12から12:00:002.12.12までのプロセスの履歴を確認したい場合は、次のことができます。これらの間の10分ごとのプロセスの履歴が表示されます。日付/時刻の境界。戻り値の形式は重要ではありません。とにかくスクリプトによって処理され、必要なものに変更できます。これまでにいくつか調べてきましたが、自分のニーズを明確に満たすものは見つかりませんでした。私が検索したものの中で: sar 、 free(1) 、 top(1) ..そして他のいくつかのもの。これは単純な問題であるはずです。htopを見るだけでこのすべての情報を確認できますが、必要なのは、各プロセスの目的のフィールドを10分ごとに収集するツールだけです。日付/時刻のスコープ(範囲)に基づいて、そのデータのスライスを抽出します。注:私はlinuxの経験が限られているので、詳細な情報を提供してください。注2:希望の出力は次のようになります(希望の範囲を受け取った後)cpu usage by process: proc_namea 1,2,2,2,2,2...... numbers represent % usage every 10 minutes... proc_nameb 4,3,3,6,1,2...... 他の情報と同じ考え。
回答: atopを試してください。これらのシステム情報はすべて、5分または10分ごとに(ディストリビューションが選択した内容に応じて)デーモンとしてログに記録され、バイナリファイルに格納されます。次に、atop -r 今日の標準ログファイルの内容をインタラクティブに表示します。これはhtopのようなもので、追加のi/o情報が含まれているため、時間を遡ってその瞬間に何が起こったかを確認できます。押す t 前進し、 shift+t 戻る。特定の時間範囲を指定することもできます。マンページから:with the flag -b (begin time) and/or -e (end time) followed by a time argument of the form hh:mm, a certain time period within the raw file can be selected. 生ファイルに何を書き込むかについて、過度に構成可能ではありません。開始するには、topのマンページももっと読むことをお勧めします。昨日のログファイルの内容を読み取ります。これが私のマシン「zarafa」が今朝7:35:40と7:45:40の間にどのように機能していたかです: