轮转目录中的所有日志导致日期重复

轮转目录中的所有日志导致日期重复

我有一个如下所示的 logrotate 配置:

/var/log/update-job/*.log {
    daily
    rotate 7
    compress
    delaycompress
    size 0k
    missingok
    copytruncate
    notifempty
    dateext
    dateformat %Y%m%d.
    extension log
    su root syslog
}

理论上,我希望它的作用是,在遇到名为 的日志文件时thelog.log,将其轮换为thelog.20150622.log,第二天轮换为 ,依此类推。我希望对具有任意文件名的多个日志文件执行此操作,例如,文件夹中可能同时thelog.20150623.logthelog.log和。anotherlog.log

实际上看到但是:

thelog.20150622.20150623.log
thelog.20150623.log
thelog.log
anotherlog.20150622.20150623.log
anotherlog.20150623.log
anotherlog.log

原因是 glob 模式 ( /var/log/update-job/*.log) 也与旋转的文件匹配。我以为 logrotate 足够聪明,可以使用 dateformat 指令来确定文件是否已旋转,但显然事实并非如此。

关于如何解决这个问题有什么想法吗?

一种解决方法可能是删除delaycompress,这样文件在旋转时就会被压缩为 .log.gz,这样它们就不再与 glob 模式匹配了。不过,我想找到一个不那么黑客的解决方案。

相关内容