问题是这样的,姑的孩子配logrotate,发现处理的结果后缀是1.gz 1.gz.1.gz无限循环的情况。

和预期不一致,所以想了解下解决办法,遂顺手谷歌搜了下,摘录如下。

问题示例:

-rw------- 1 root root  207 Nov 20 00:01 dev-virtual.log.1.gz
-rw------- 1 root root 113 Nov 19 00:01 dev-virtual.log.1.gz.1.gz
-rw——- 1 root root 100 Nov 18 00:01 dev-virtual.log.1.gz.1.gz.1.gz
-rw——- 1 root root 100 Nov 17 00:01 dev-virtual.log.1.gz.1.gz.1.gz.1.gz

怎么个情况?

怀疑两个相关程序配置有问题,即:logrotate and syslog-ng

logrotate配置要处理的文件为:

/var/log/syslog/*

而Syslog-ng配置记录日志的文件后缀为.log:

destination messages { file("/var/log/syslog/$HOST"); };

知道原因了,解决方法也很简单:

logrotate配置修改为:

/var/log/syslog/*.log

Syslog-ng配置文件

/etc/syslog-ng/syslog-ng.conf

改为:

destination messages { file("/var/log/syslog/$HOST.log"); };

测试结果:

logrotate --force "/etc/logrotate.d/syslog-ng"
-rw------- 1 root root 207 Nov 21 11:39 dev-virtual.log
-rw------- 1 root root 207 Nov 21 11:39 dev-virtual.log.1.gz
-rw------- 1 root root 313 Nov 21 11:26 dev-virtual.log.2.gz

问题解决。

以上方案完整翻译自:

Logrotate rotating the rotated, why and how to fix

Related Posts: logrotate无限循环1.gz 1.gz.1.gz 解决办法 :

avatar