“不总是开启”系统上的 Logrotate

“不总是开启”系统上的 Logrotate

我有几个 Ubuntu 16.04 和 18.04 系统,它们没有定义的运行时间,例如台式机、笔记本电脑或虚拟机按需运行。有哪些正确的方法和工具可以自动轮换它们上的日志,例如在启动时立即启动错过的 logrotate 运行?

答案1

不做任何特别的事情。Ubuntu 已经为此做好了准备。

Ubuntu 包括阿纳克隆,它巧妙地跟踪 cron 作业并在系统下次可用时触发错过的作业。

Anacron 已经在 /etc/cron.daily 中跟踪日常作业,包括 logrotate。

示例:如果 Ubuntu VM 在星期二关闭并在星期五重新启动,则 anacron 将在 VM 星期五完成启动几分钟后运行一组每日 cron 作业。星期五的时间无关紧要 - anacron 将确定自上次每日作业以来已过去 24 小时以上。

答案2

只需每小时进行一次 logrotate 调用(通过将配置放入/etc/cron.hourly/)并根据您对每个配置的期望配置轮换,例如weekly在 logrotate 配置中添加选项。像这样,logrotate 作业每周启动一次,但每周仅对日志文件执行一次。

日志旋转文档

答案3

快速修复是将 /etc/cron.daily/logrotate 脚本添加到 /etc/rc.local 脚本。因此 /etc/cron.daily/logrotate 每次启动时都会运行,如果最近没有轮换日志,则轮换日志;如果最近总是轮换日志,则不轮换任何日志。然后,如果系统在线时间足够长,常规 /etc/cron.*/ 作业就会生效。已在 Ubuntu 16.04 LTS 和 18.04 LTS 上测试。

相关内容