古いログファイルを削除するために logrotate の世代数を変更したので設定方法をご紹介します。
Nginx のデフォルトの logrotate 設定を例にみていきます。
/etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
rotate がログファイルを保持する世代数です。
デフォルトだと 52 なので、1日1回 logrotate する場合は 52 日間分ログファイルを保持します。自分の場合7日分あればいいので、rotate 7 に変更しました。
設定変更しても古いログファイルは削除されないので rm -f access.log-*.gz とか自分で手動削除しましょう。
以上、logrotate の設定を変更して、サーバーのディスク容量を空けたい現場からお送りしました。