logrotateの設定〜maillogはデフォだった〜

凄く苦戦したわけじゃないですが、自分がOSインストールしたサーバではなくインストールされているアプリケーションが把握できてないわけです。なので、logrotateの設定をしようと思ったら、logrotate自体が入ってないなんて事はよくある話で…

ログのローテーションは、自分が知ってる限り方法が二つあって、ひとつが今から書くlogrotateで、もうひとつがcronologです。
OSはCentOSなんで、yumでインストールしました。

yum install logrotate

maillogをローテートさせようと思ったのがきっかけで、やり始めたんですがmaillogは/etc/logrotate.d以下に配置してあるsyslogの中でローテートされるように設定がしてあるみたいで、無駄でした。

ただ、apacheのログなどはローテートするように設定しました。

こんな感じ(ファイル名:httpd)

/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}

mysqlの設定はこんな感じ(ファイル名:mysql)

/var/log/mysql/*.log"{
compress
daily
delaycompress
missingok
notifempty
mail hoge@hogehoge.com
mailfirst
rotate 7
}

/etc/logrotate.d以下に置いておけば、毎日実行してくれるようです。