Logrotate
Logrotate:“日誌不需要旋轉”為什麼?
我有以下新的 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 時,它將按預期工作