[root@www ~]# ll /etc/cron*/*ana*
-rwxr-xr-x 1 root root 379 Mar 28 2007 /etc/cron.daily/0anacron
-rwxr-xr-x 1 root root 381 Mar 28 2007 /etc/cron.monthly/0anacron
-rwxr-xr-x 1 root root 380 Mar 28 2007 /etc/cron.weekly/0anacron
# 刚好是每天、每周、每月有排程的工作目录!查阅一下每天的任务
[root@www ~]# cat /etc/cron.daily/0anacron
if [ ! -e /var/run/anacron.pid ]; then
anacron -u cron.daily
fi
# 所以其实也仅是运行 anacron -u 的命令!因此我们得来谈谈这支程序!
|
[root@www ~]# anacron [-sfn] [job]..
[root@www ~]# anacron -u [job]..
选项与参数:
-s :开始一连续的运行各项工作 (job),会依据时间记录档的数据判断是否进行;
-f :强制进行,而不去判断时间记录档的时间戳记;
-n :立刻进行未进行的任务,而不延迟 (delay) 等待时间;
-u :仅升级时间记录档的时间戳记,不进行任何工作。
job :由 /etc/anacrontab 定义的各项工作名称。
|
由於 /etc/cron.daily 内的任务比较多,因此我们使用每天进行的任务来解释一下 anacron 的运行情况好了。 anacron 若下达『
anacron -s cron.daily 』时,他会这样运行的:
- 由 /etc/anacrontab 分析到 cron.daily 这项工作名称的天数为 1 天;
- 由 /var/spool/anacron/cron.daily 取出最近一次运行 anacron 的时间戳记;
- 由上个步骤与目前的时间比较,若差异天数为 1 天以上 (含 1 天),就准备进行命令;
- 若准备进行命令,根据 /etc/anacrontab 的配置,将延迟 65 分钟
- 延迟时间过后,开始运行后续命令,亦即『 run-parts /etc/cron.daily 』这串命令;
- 运行完毕后, anacron 程序结束。