logrotate 从具有不同文件名的日志文件创建一个压缩存档

logrotate 从具有不同文件名的日志文件创建一个压缩存档

我在下面有一个日志文件夹/var/USER/mylogs,每天都有格式为 的日志文件"DATE-mylogile.log"。日期格式为"%d-%m-%Y".

因此,在我的文件夹中,我有以下日志文​​件:

12-01-2024-mylogfile.log
13-01-2024-mylogfile.log
14.01-2024-mylogfile.log
...

现在我想使用 logrotate 来旋转日志。我的测试配置如下所示:

/var/USER/mylogs/*.log {
weekly
rotate 4
compress
missingok 
dateext 
dateformat -%d-%m-%Y
}

但是当 logrotate 运行时,它会为每个日志文件创建 gz-Archive,例如:

12.01-2024-mylogfile.log-12-03-2024.gz
13.01-2024-mylogfile.log-13-03-2024.gz
14.01-2024-mylogfile.log-14-03-2024.gz

但我希望 logrotate 每周创建一个 gz-Archive,其中包括一周中的所有单个日志文件,这样就只有一个 gz-Archive,如下所示:

mylogfile.log-14-03-2024.gz

但我被困住了 - 那么这可能吗?我该怎么做?

答案1

经过更多研究后,我发现了一个帖子服务器故障给出答案的地方。

因此不可能轮换文件名中包含时间/日期的日志。 logrotate 设计为使用每次都相同的日志文件,并且应用程序在该单个日志文件上写入。

来自链接的回答服务器故障邮政:

“如果您已经创建名称中包含日期的文件,那么 logrotate 不是答案;它基于应用程序始终写入同一日志文件的想法(例如 /var/log/app/output.log)。 log),然后 logrotate 负责重命名/压缩文件并告诉应用程序再次重新打开原始目标文件。”

相关内容