【发布时间】:2015-01-09 08:41:16
【问题描述】:
在 logrotate 手册页中,他们说:
“通常,logrotate 作为每日 cron 作业运行”。
这是否意味着 logrotate 使用 cron(或由 cron 执行)? 如果是这样,这是否意味着如果我不通过 crontab 配置 cron 作业(例如),logrotate 将无法工作?
【问题讨论】:
在 logrotate 手册页中,他们说:
“通常,logrotate 作为每日 cron 作业运行”。
这是否意味着 logrotate 使用 cron(或由 cron 执行)? 如果是这样,这是否意味着如果我不通过 crontab 配置 cron 作业(例如),logrotate 将无法工作?
【问题讨论】:
您可以在没有 cron 的情况下手动运行 logrotate。
logrotate <configuration file>
但是,如果您想在 预定 的基础上运行 logrotate,是的,您将需要 cron。
您的包管理器应该在 /etc/cron.daily/logrotate 中创建一个默认计划,以默认 /etc/logrotate.conf 配置运行 logrotate。您还可以将自定义配置放在 /etc/logrotate.d/ 中,因为默认配置有一行包含此目录中的所有配置。
include /etc/logrotate.d
如果您想使用自定义计划运行 logrotate,可以将您的 cron 作业放在 /etc/cron.d/ 中。
例如,这将在每天两点使用 /etc/custom-logrotate.conf 配置触发 logrotate。
0 2 * * * root /usr/sbin/logrotate /etc/custom-logrotate.conf
如果您需要有关 cron 表达式的帮助,请查看 crontab guru。
【讨论】:
是的,正常情况下,cron 每天都会执行 logrotate。 我取决于你的 linux 发行版,但通常是让 cron 运行它。
你可以检查是否有文件/etc/cron.daily/logrotate 如果是这样,你的发行版使用 cron 来运行 logrotate。
如果您使用的是 docker,这可能会带来一些问题,目前 cron 不在容器内运行。
【讨论】: