logrotate 是否依赖于 cron?

lin*_*ing 7 cron logrotate

在 logrotate 联机帮助页中,他们说:

“通常,logrotate 作为日常 cron 作业运行”。

这是否意味着 logrotate 使用 cron(或由 cron 执行)?如果是这样,这是否意味着如果我不通过 crontab 配置 cron 作业(例如),logrotate 将不起作用?

Vic*_*ong 10

您可以在没有 cron 的情况下手动运行 logrotate。

logrotate <configuration file>
Run Code Online (Sandbox Code Playgroud)

不过,如果你想运行在logrotate的计划的基础上,是的,你需要的cron。

您的包管理器应该在/etc/cron.daily/logrotate中创建一个默认计划,该计划使用默认的/etc/logrotate.conf配置运行 logrotate 。您还可以将自定义配置放在/etc/logrotate.d/ 中,因为默认配置有一行包含此目录中的所有配置。

include /etc/logrotate.d
Run Code Online (Sandbox Code Playgroud)

如果要使用自定义计划运行 logrotate,可以将 cron 作业放在/etc/cron.d/ 中

例如,这将在每天两点钟使用 /etc/custom-logrotate.conf 配置触发 logrotate。

0 2 * * * root /usr/sbin/logrotate /etc/custom-logrotate.conf
Run Code Online (Sandbox Code Playgroud)

如果您需要有关 cron 表达式的帮助,请查看crontab guru


小智 1

是的,正常情况下,cron 每天都会执行 logrotate。这取决于你的 Linux 发行版,但正常情况是让 cron 运行它。

您可以检查是否有文件/etc/cron.daily/logrotate 如果是这样,您的发行版使用 cron 来运行 logrotate。

如果您使用 docker,这可能会带来一些问题,目前 cron 不在容器内运行。