Linux
logrotation 正在壓縮格式不正確的日誌文件
我在我的虛擬機上啟用了以下 logrotation,但不知何故,日誌以不正確的格式壓縮。
日誌輪換
/logs/springboot/*.log* { missingok minsize 100M copytruncate notifempty sharedscripts compress rotate 5 postrotate endscript }
下面是日誌是如何用 0 字節壓縮的
-rw------- 1 message message Aug 12 19:45 message.2021-08-01.6.log.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz -rw------- 1 message message Aug 12 19:45 message.2021-08-01.7.log.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz -rw------- 1 message message Aug 12 19:45 message.2021-08-01.8.log.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz -rw------- 1 message message Aug 12 19:45 message.2021-08-01.9.log.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz
發生此問題是否有原因?由於此 cron 作業失敗並出現以下錯誤。我嘗試使用調試模式執行 logrotation,下面是 stopper..
**compressing log with: /bin/gzip** removing old log /logs/springboot/message.2021-07-26.0.log.1.gz.1.1.1.1.1.1.gz.1.gz.1.1.1.1.1.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.1.1.1.1.1.gz.1.gz.1.1.1.1.1.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.1.1.1.1.1.gz.1.gz.1.1.1.1.1.1.gz.6.gz error: error opening /logs/springboot/message.2021-07-26.0.log.1.gz.1.1.1.1.1.1.gz.1.gz.1.1.1.1.1.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.1.1.1.1.1.gz.1.gz.1.1.1.1.1.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.1.1.1.1.1.gz.1.gz.1.1.1.1.1.1.gz.6.gz: **File name too long**
您的模式 ,
/logs/springboot/*.log*
不僅匹配您要輪換的日誌文件,還匹配輪換的日誌。因此,它匹配這兩個文件名:
message.2021-08-01.6.log
message.2021-08-01.6.log.1.gz
這意味著它將開始旋轉已經旋轉和壓縮的文件,
.1.gz
每次都添加。使您的模式更具限制性,以避免匹配旋轉的日誌文件。例如,用於
/logs/springboot/*.log
僅匹配以 . 結尾的文件名.log
。或者更好的是,使用/logs/springboot/message.*.log
因為您知道您的日誌文件也有一個靜態文件名前綴。