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

相關內容