我使用以下設定來歸檔和刪除日誌:
/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