这个坑值得记一笔。配置了按大小轮转,应用日志涨到一 G 也没切,手动强制执行才动,自动执行看起来像是完全没生效。
真正麻烦的地方在于,几个原因的现象几乎一样。大小和按天两个条件写在一起,时间窗口不满足时不执行;复制截断方式与应用自己重新打开文件冲突;每日任务的执行时间被改过,实际一天只跑一次。
第一件事是看该服务的完整规则
cat /etc/logrotate.d/app
随后用调试模式看判定原因
logrotate -d /etc/logrotate.d/app
手动强制执行一次
logrotate -f /etc/logrotate.d/app
剩下的就是确认定时器实际执行时间
systemctl list-timers | grep logrotate
怎么算真的好了,看的是同一批现象。调试输出显示大小判定通过,日志按设定大小切出备份文件并正常压缩,两天内保持稳定。
提醒一点。两个条件同时写时以大小为准,但仍然受每日检查窗口限制;想实时切割得单独配一个定时器。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。