logrotate の世代数を変更して古いログファイルを削除した
古いログファイルを削除するために logrotate の世代数を変更したので設定方法をご紹介します。
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 の設定を変更して、サーバーのディスク容量を空けたい現場からお送りしました。