cron 每天什么时候执行脚本?

cron 每天什么时候执行脚本?

如果我将一个 shell 脚本放在 中/etc/cron.daily/,它会在一天中的什么时间执行?

答案1

大约是早上 7:35,但具体时间取决于 anacron。

默认情况下,cron 将 /etc/cron.daily 作业的运行委托给 anacron。/etc/crontab 包含以下行:

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

但这定义了 anacron 的行为未安装

安装 anacron 后,cron.daily 作业的运行由 /etc/anacrontab 中的条目控制:

1   5   cron.daily   nice run-parts --report /etc/cron.daily

意思是每天运行这些作业一次,延迟 5 分钟。

anacron 本身由 cron 运行,如文件 /etc/cron.d/anacron 中所述,它在早上 7:30 运行 anacron。

答案2

看着/etc/crontab它应该运行06:25

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

答案3

正如其他答案所指出的,结果取决于是否安装了 anacron。在桌面上,它默认安装,但关键是它没有安装在服务器发行版中。因此答案在服务器上大约是 06:25,在桌面上大约是 07:35。

答案4

详细说明其他答案,在较新的系统上,anacron 由 systemd 管理。在我的 Ubuntu 19.10 系统上,anacron 每小时从 7:30 到 23:30 运行,随机延迟 5 分钟。然后,Anacron 按照 中的定义以 5 分钟的延迟运行 cron.daily 脚本/etc/anacrontab

此外,systemd 仅在系统连接到交流电源时启动 anacron。请参阅/lib/systemd/system/anacron.service/lib/systemd/system/anacron.timer了解更多信息。

相关内容