コマンドラインから設定する
topの結果をlogに出力する – Code Designtop -b -d 60 > /log/top.log
-b オプションはバッチモード。結果を標準出力に出力する。
-d オプションは動作間隔。単位は秒(小数点以下も2桁まで指定可能。マイナスは不可)。省略するとデフォルト設定で起動する。間隔を短くしすぎるとログが膨大になりすぎるのでここでは60秒で設定。監視目的ならば短い方が良いかと(平均を把握しやすいので)。
本当なら記録するファイルは決めておいて、単位時間でローテーションさせるのが普通だと思うんだけど、とりあえずこれでも動いたので参考までに。
top -b -d 60 > /log/top.log_`date +%y%m%d`
「top.log_090609」というファイル名でログが保存される。
cronで設定する
もし定常的にログを保存することにするのであれば、cronで設定した方がいいかも。topコマンドを定期的に実行し、実行結果を収集する方法 | Miracle Linux Support
その場合の記述はこんな感じなんだろうなぁ(上記リンク先を参考に)。
*/10 * * * * root /usr/bin/top -b -n 2 -d 10 >> top.log
*/10 * * * * root /usr/bin/top -b -n 2 -d 10 >> top.log_`date '+\%y\%m\%d'`
10分に1回topを起動し、10秒間隔でデータを取得して保存する設定。確かに10秒間隔の方が「たまたまその瞬間だけ高かった(低かった)」というのを回避しやすいし、それを2回セットにして10分間隔で行うことでログが大きくなりすぎるのも回避できそう。
(追記: crontab内には「%」を記述できない。バックスラッシュを付けるか別ファイルに書き出す)
関連リンク
Manpage of TOPtopコマンドの内部オプション – よかろうもん!