在Ubuntu上,cron和anacron的调用关系是怎样的?看着和 /etc/anacrontab
,我感到很困惑。/etc/cron.daily/0anacron
/etc/crontab
从https://askubuntu.com/a/848638/1471
cron.daily 每小时运行 anacron。
“cron.daily 每小时运行 anacron”是什么意思?
是“cron 每天通过 cron.daily 运行 anacron”吗?谢谢。
答案1
您引用的文字是错误的。它说每天cron.daily
运行anacron
(此后文本可能已更新)。这也正是它的意思。
anacron
不是(不管 AskUbuntu 的答案怎么说)守护进程。它是一个小程序,需要由 cron 每天调用(或更频繁地调用,尽管没有任何区别)来运行/etc/anacrontab
.
答案2
联机anacron
帮助页描述了它应该做什么,以及在某种程度上它是如何做的。您应该相信这一点以及系统上文件的内容,而不是您在互联网上不相关的网站上找到的信息(当然包括这个答案)。
anacron 的工作是确保每日、每周和每月的作业定期运行,即使系统没有在适当的时间运行。它不需要 cron 来操作,但确实需要避免重复 cron 的工作。
/etc/anacrontab
告诉anacron
要运行什么;默认情况下,这是在 下的文件中以适当的时间间隔定义的所有 cron 作业/etc/cron.{daily,weekly,monthly}
。当 anacron 运行时(在要求实际运行其管理的作业的模式下),它会检查作业上次运行的时间,并且仅在经过与作业预期周期一致的时间段后才运行它们。
/etc/cron.{daily,weekly,monthly}/0anacron
确保 anacron 知道 cron 的操作:每次 cron 处理每日、每周和每月作业时,它运行的第一个作业都会更新 anacron 的时间戳,重置自上次执行相应组以来经过的时间的计数器工作。
/etc/cron.d/anacron
并/lib/systemd/system/anacron.timer
确保在安装了 cron 或 systemd 的系统上,定期运行 anacron:每天使用 cron 运行,每小时使用 systemd 运行。 anacron 也在系统启动时运行(通过其初始化脚本)以及电源状态更改时(恢复时或连接交流电源时)。