我总共有几个脚本,/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