作業ノート

様々なまとめ、雑感など

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 1010  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が動くのを待って、その結果を確認する。