在 RedHat 上,我有一个如下的 logrotate 配置:
/custom/path/kibana/logs/*.log {
missingok
daily
create 0644 suuser suuser
rotate 7
notifempty
sharedscripts
compress
dateext
dateformat -%Y%m%d%s
su suuser suuser
postrotate
/bin/kill -HUP $(cat /custom/path/kibana/run/kibana.pid 2>/dev/null) 2>/dev/null
endscript
}
我使用调试和强制标志运行了 logrotate,以验证它是否运行正常。它确实轮换了我的日志文件。所以我认为我的配置一切正常。
但是,在 crontab 运行期间,第二天我发现日志没有轮换。我尝试在调试模式下运行 logrotate 并收到以下消息:
日志不需要旋转(日志已经旋转)不运行 postrotate 脚本,因为没有日志被旋转
我删除了 logrotate.status 文件,因为下次运行 crontab 时它会从头开始运行并恢复正常。但第二天,我注意到上述配置所针对的日志文件没有出现在 logrotate.status 文件中,而且当我尝试手动运行时,仍然出现相同的消息,提示日志已轮换。
我非常困惑,特别是考虑到当我在配置中添加尺寸标准时,它运行良好!
你们能解释一下吗?
非常感谢您的帮助和解释。
亲切的问候,
皮埃尔