syslogのログローテート

# vi /etc/logrotate.d/rsyslog

(デフォルト)

/var/log/syslog
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

(編集)

/var/log/syslog
{
        rotate 6
        monthly
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
        rotate 6
        monthly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

半年(6箇月)に変更

missingok ログファイルが存在しなくてもエラーを出さずに処理を続行
notifempty ログファイルが空ならローテーションしない
compress ログの圧縮
delaycompress ログの圧縮を次回のローテーション時まで遅らせる
sharedscripts 全ログで共通して1回postrotateが呼ばれる
prerotate 〜 endscript prerotatとendscriptの間に記述されたコマンドをログローテーション前に実行
postrotate ~ endscript postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行