【发布时间】:2019-01-21 23:18:54
【问题描述】:
我在 ubuntu 16.04 上有一个 logrotate 配置,旨在每天将我的日志旋转到 gz。配置是这样的:
/opt/dcm4chee/server/default/log/*.log {
daily
missingok
rotate 5
compress
notifempty
create 0640 dcm4chee dcm4chee
sharedscripts
copytruncate
}
它会正确生成压缩后的日志:
server.log.1.gz
...
server.log.5.gz
但是,它也会偶尔产生一堆不需要的“备份”,随着时间的推移导致磁盘使用失控 - 我们在磁盘空间有限的虚拟机上运行:
server.log.1-2018063006.backup
...
server.log.1-2018081406.backup
这完全违背了我最初通过旋转和压缩有限数量的日志来限制磁盘使用量的初衷。
如何完全阻止 logrotate 生成这些“备份”?如果这意味着丢失几行日志记录,那就这样吧。
我无法找到有关此事的文档。目前我有一个 crontab 设置,它会定期删除这些文件,但这似乎不是“正确”的做事方式。
【问题讨论】:
-
您是否还有其他一些可能与某些相同文件匹配的 logrotate 设置?使用
dateext指令或类似指令? -
@BenjaminW。我没有看到与该目录匹配的其他 logrotate 规则(我检查了 /etc/logrotate.d 中的每个文件),并且对 dateext 进行了 grep,但没有运气。
-
我唯一能想到的其他地方是
/etc/logrotate.conf。 -
@BenjaminW。也没有引用 /etc/logrotate.conf 中的 dateext 或 /opt/dcm4chee。系统中有另一个日志文件正在发生同样的事情。它们来自不同的进程。但是,与我使用 logrotate 管理的其他内容相比,它们的共同点是它们的写入频率很高(每秒几行)。不确定这是否是一个原因......
-
可能是其他东西在旋转它们,但我不确定是什么。也许您可以在系统日志中看到一些内容?