CentOS6のログローテート

ログローテートという機能がデフォルトで入っていて、早く家に帰りたいのでここらの設定はしないというコンセプトで仕事をしてきましたが、もめるとログをとらなきゃいけないことがあって毎回しぶしぶ設定しますが、時々しかやらないのですぐに忘れてしまうので覚書です。
この機能はいろんなログをまとめてローテートしてくれるので、とても便利です。まだ若かった頃には同じスクリプトを自分で書いていたりしたものですが、もうそういうエネルギーがないです。

ログローテートの設定

ログローテートの設定は、
/etc/logrotate.conf
/etc/logrotate.d/

にまとめて書かれております。基本的にはここに全部設定できるといった便利なものではあります。Apacheとかと同様に/etc/logrotate.confに/etc/logrotate.dがインクルードしているといったもので、/etc/logrotate.dは各パッケージの個別の設定が書かれているディレクトリになります。デフォルトでは以下のようなものが入っていました。
dracut
httpd
mysqld
psacct
sa-update
syslog
vsftpd
yum

ログローテートの実際のサービスは、/usr/sbin/logrotateにあるようです。もともと設定されているcronの/etc/cron.daily/logrotateでもって先のサービスを実行しているということらしいです。

ローテションをのばす

ローテーションの周期はデフォルトで4(4週間)になっているので、上部のweeklyをそのままにしてrotateの値を変えると保存期間を調整できます。以下の例では、4を24に変更して24週間(約半年)に変更しています。HDDの容量があるのだったらローテーションを延期しても大丈夫です。
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
# 4 -> 24 chenged 2015/03/22
rotate 24

参考:
http://changineer.info/server/logging/logrotate.html