Logrotate

Logrotate:“日誌不需要旋轉”為什麼?

  • November 2, 2017

我有以下新的 logrotate 配置:

/var/log/nexus/nexus.log {
   rotate 7
   missingok
   compress
   delaycompress
   copytruncate
   daily
}

當我執行時logrotate -d nexus,我得到以下資訊:

reading config file nexus
reading config info for /var/log/nexus/nexus.log

Handling 1 logs

rotating pattern: /var/log/nexus/nexus.log  after 1 days (7 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/nexus/nexus.log
 log does not need rotating

我的 /var/log/nexus/ 文件夾包含以下內容:

nexus.log
oldlogs.tar.gz

為什麼 LogRotate 不旋轉 nexus.log 文件?我所期望的是,nexus.log 文件會被截斷,並且會創建一個新文件,例如 nexus.log-201106241000。

最有可能的是,日誌文件不到一天和/或已在最後一天內輪換,並且 logrotate 會記住歷史記錄。

-f如果你真的想要添加它,它會強制旋轉(儘管不是 100% 確定它是如何與 互動的-d)。

您可以查看歷史記錄,位置取決於您的分佈,但可能是/var/lib/logrotate/status. 該文件顯示上次輪換日誌的時間。

第一次使用新的日誌配置執行 logrotate 時,它不知道上次日誌輪換發生的時間,因此它只是在其中寫入一個狀態行,/var/lib/logrotate/status以表明它是今天執行的。

當它隨後在第二天執行時,它會看到日誌是一天前的,並按預期旋轉它。如果您不想等待,請編輯 logrotate 的狀態文件並將日誌的狀態日期恢復到前一天。

當您手動執行 logrotate 時,它將按預期工作

引用自:https://unix.stackexchange.com/questions/15546