topコマンドを定期的に実行し、実行結果を収集する方法
[概 要]
Asianux Server 3
MIRACLE LINUX V4.0 SP2
・cronによりtopコマンドを10分毎に実行する
・logrotateにより1日1回ログファイルのローテーションを行い7日分をバックアップする
1.cronの設定
/etc/crond.dディレクトリ以下に、任意の名前のファイルを追加し、実行内容を記述します。
※以下の例では、/etc/cron.d/toplog ファイルに記述しています。
※サービスの再起動は必要ありません。
例)
cronの実行間隔:10分毎
実行コマンド: dateコマンドを実行後、topコマンドを10秒毎に2回実行した結果を /var/log/toplogへ保存する。
*/10 * * * * root /bin/date >> /var/log/toplog; /usr/bin/top -b -n 2 -d 10 >> /var/log/toplog
2.logrotateの設定
/etc/logrotate.dディレクトリ以下に、任意の名前のファイルを追加し、logrotateの内容を記述します。
※以下の例では、/etc/logrotate.d/toplog ファイルに記述しています。
例)1日1回/var/log/toplogファイルのローテーションを行い、7日分をバックアップする場合
/var/log/toplog {
missingok
daily
rotate 7
}
<ファイルの書式>
ログファイル名 [ ログファイル名 …]{
設定値
・・・
}
<設定値>
missingok : ログファイルが存在しなくてもエラーを出さない
daily : 毎日ログローテーションする
rotate 回数 : 指定した回数だけローテーションする
3.動作確認
logrotateコマンドをデバッグモード(-dオプション)で実行し、動作確認を行います。
※-dオプションを付けた場合、実際にはログファイルは更新されません。
例) /etc/logrotate.d/toplogファイルに記述したlogrotateの設定を確認する場合
# logrotate -dv /etc/logrotate.d/toplog
問題がある場合、エラーが出力されます。以下はその一例です。
error: /etc/logrotate.d/toplog:2 unknown option 'missingo' -- ignoring line
error: stat of /var/log/toplog failed: No such file or directory
デバッグモードでエラーが出力されなければ、実際にコマンドが実行されるのを待ち、ログファイルが出力されていることを確認します。
※サービスの再起動は必要ありません。
ログファイル:
/var/log/toplog
/var/log/toplog.1
...
/var/log/toplog.7
なお、logroateの実行結果は下記のファイルで確認することができます。
ファイル:/var/lib/logrotate.status
"/var/log/toplog" 2008-2-27
cronの設定ファイル等については以下の資料をご参照ください。
Linux技術トレーニング 基本管理コース II (第三章 5.ジョブスケジューラー)
2008年 4月 8日 新規作成