logrotate の世代数を変更して古いログファイルを削除した

Tadashi Shigeoka ·  Fri, December 29, 2017

古いログファイルを削除するために logrotate の世代数を変更したので設定方法をご紹介します。

Linux | リナックス

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 の設定を変更して、サーバーのディスク容量を空けたい現場からお送りしました。