如果我将一个 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
了解更多信息。