在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不会在容器内运行。