Logrotateは古いログを削除しません。

Logrotateは古いログを削除しません。

次の設定を使用してログをアーカイブして削除します。

/path/to/logs/*.log {
    daily
    missingok
    compress
    rotate 4
    nodateext
    nocreate
    maxage 14

}

私のログの場所のログは次のとおりです。

-rwxrwxrwx 1 nobody nobody 21635 Sep 26 13:09 audit-2016.09.26.log

次に、次のように回転して圧縮します。

-rwxrwxrwx 1 nobody  nobody    180485 Sep 10 03:41 audit-2016.09.26.log.1.gz

私が経験している問題は、毎晩ログをアーカイブしてから14日後にログが削除されないことです(maxageディレクティブで予想どおり)。

なぜこれが起こるのか、logrotate設定で何を変更するのかを知っている人はいますか?

ありがとうございます!

ベストアンサー1

logrotateのマニュアルページから:

最大額

数日経過した循環ログを削除します。ログファイルを回転したときにのみ年齢を確認してください。

audit-2016.09.26.log一度だけ生成され、再び生成されません。だから再び回転しません。

実際には監査ログファイルですすでに回転しています。解凍して古いファイルを削除したいようです。 logrotateがこれを達成できるかどうかはわかりません。たとえば、元のルールにポスト回転スクリプトを追加できます。

       postrotate
           find /path/to/logs -name "*.log.1.gz" -mtime +14 -delete
       endscript

おすすめ記事