logrotateの設定を確認する
/var/log/maillogが肥大化していた。どうやら一年以上のログが保存されているようだ。
さらに、/var/log/maillog.1などのバックアップファイルが見つからない。
最初、logrotateが動いていないのかと思い、cron周りを調べる。
# ls /etc/cron*
/etc/cron.daily/logrotateがあることを確認。
次に、cronのログからcron.dailyが実行されているか調べる。
tail -n 500 /var/log/cron | grep 'cron.daily'
少なくとも、前日は起動していたことを確認。
次は、/etc/cron.daily/logrotateファイルのパーミッションと中身。
# ls -l /etc/cron.daily/logrotate -rwxr-xr-x 1 root root 180 10月 10 2005 /etc/cron.daily/logrotate # cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0
特に問題なさそう。
ここで、loggerコマンドについて調べる。
# man logger
マニュアルによると、loggerコマンドはsystem logにログを記録するそうだ。
そこで、/var/log/messageに"ALERT exited abnormally"というログが記録されているか調べる。
# grep "ALERT exited abnormally" /var/log/messages
たくさん見つかった。(笑)
つまり、logroateが正しく実行できていなかったのが原因。
次にその原因を探るため、-dオプションをつけてlogrotateコマンドを実行する。
# logrotate -d /etc/logrotate.conf
/etc/logrotate.d の中にあるファイルで、設定が間違っている箇所を発見。
これを修正して再度上記のコマンドを実行し、エラーが出ないことを確認。
あとはcron.dailyが動くのを待って、その結果を確認する。