从不同的 crone 作业更新 Logrotate 状态文件

从不同的 crone 作业更新 Logrotate 状态文件

我总共有几个脚本,/etc/logrotate.d/都包含在/etc/logrotate.conf运行的 crone 作业中:

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

每天。但我想/etc/logrotate.d/每分钟运行一个脚本,所以我添加了另一个作业:

* * * * * root /usr/sbin/logrotate /etc/logrotate.d/myLog >/dev/null 2>&1

/etc/cron.d/。现在/var/lib/logrotate/logrotate.status我只能看到 myLog。如果其他日志轮换,我无法快速检查它。

logrotate.status 文件是否被单独的 crone 作业覆盖?或者日常脚本是否失败,因为它对于 myLog 来说是多余的?

答案1

考虑到您有可用的 systemd,我建议从 crontab 中删除 logrotate 条目。

验证您的服务文件,该文件可能位于 /usr/lib/systemd/system/logrotate.service。可能对您来说没问题。

接下来,查看可能位于 /usr/lib/systemd/system/logrotate.timer 中的计时器。它可能会指定每日轮换,而这并不是您想要的。用户,在 /etc/systemd/system/logrotate.timer 中复制此 logrotate.timer 文件,它将成为您本地的修改后的计时器。现在,根据您的需要编辑此复制文件的“[Timer]”部分。请参阅第 5 节中的 systemd.timer 手册页。如果配置现在很好,请将此新单元通知 systemd:

systemd daemon-reload

然后启用新的计时器:

systemd enable logrotate.timer

在日志中验证一切正常:

journalctl -b -xe

相关内容