ログはそのまま放っておくと、どんどん肥大化してしまいます。
特にmaillogは肥大化しやすいログのひとつかと思います。
そこでlogrotateの仕組みを利用して、古いログを別ファイルに書き出して、定期的にローテーションする方法を解説します。
logrotateの設定ファイルは/etc/logrotate.d/にあります。
そこにmaillogという設定ファイルを作りたいところですが、実はこのmaillogはsyslogの管轄になるので、/etc/logrotate.d/syslogの中に既に設定が書き込まれていますので、そこにオリジナルの設定を追記することになります。
ちなみに私の設定はこうなっています。
1 |
vi /etc/logrotate.d/syslog |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { # 追記(1週間に1回ログを取得) weekly # 追記(ログを14世代分残す) rotate 14 # 追記(2MBを超えたログは強制的にローテート) size 2M sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript } |
syslogはsecureやmessagesなど非常に重要なログが含まれるので、ある程度長い期間ログを残せるようにしたほうが良いと思います。
messagesやsecureは1週間で2MB以上に肥大化することはまずないのですが、maillogは1週間で結構な容量に肥大化することがあるので、2MBになったら強制的に回すようにしました。
そのへんはお好みで設定してください。