
次の設定を使用してログをアーカイブして削除します。
/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