我在虚拟机上启用了以下 logrotation,但不知何故,日志以不正确的格式进行 gzip 压缩。
日志轮转
/logs/springboot/*.log*
{
missingok
minsize 100M
copytruncate
notifempty
sharedscripts
compress
rotate 5
postrotate
endscript
}
下面是如何使用 0 字节对日志进行 gzip 压缩
-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,下面是停止程序。
**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**
答案1
您的模式/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
因为您知道日志文件也有静态文件名前缀,所以使用。