以下引用鸟哥的话:
anacron 是透过该记录与目前的时间差异,了解到是否应该要进行某项任务的工作! 举例来说,如果我的主机在 2009/03/15(星期天)
18:00 关机,然后在 2009/03/16(星期一) 8:00 启动,由於我的 crontab 是在早上 04:00
左右进行各项任务,由於该时刻系统是关机的,因此时间戳记依旧为 20090315 (旧的时间), 但是目前时间已经是 20090316
(新的时间),因此 run-parts /etc/cron.daily 就会在启动过 65 分钟后开始运行了。
疑问点是:时间戳只精确到3月15日和3月16日,那linux怎么知道3月16日开机时间一定是在4:00之后?换句话说,如果在3月16日3:00就开机,那么anacron还会执行4:00的crontab任务吗?
anacron is only accurate to the day, so just record the day it was last run.
Anacron can't do this. You can only say that this task runs once a day, or once a week, or once a month.
PS: If dcron is used, it will run all missed tasks once.