文章目录
在Linxu系统中,有三种用于任务调度的工具
at
命令调用atd
服务crontab
命令调用cron(crond)
服务。anacron
工具。
(1)任务调度工具anacron介绍
-
anacron
工具是用来干什么的呢?如果Linux服务器不是24小时开机的,那么刚好在关机的时间段之内有系统定时任务(cron)需要执行,那么这些定时任务是不会执行的。
假设我们需要在凌晨3点03分执行系统的日志备份,但是我们的Linux服务器不是24小时开机的,在晚上需要关机,白天上班之后才会再次开机。这个定时任务的执行时间我们的服务器刚好没有开机,那么这个任务就不会执行了,
anacron
工具就是用来解决这个问题的。anacron
工具会使用一天,七天,一个月作为检测周期,用来判断是否有定时任务在关机之后没有被执行,如果有这样的任务,anacron
工具会在特定的时间重新执行这些定时任务。anacron
工具以天为单位,周期性地执行命令。anacron
是以天为单位,而cron
最小执行的周期是分钟。 -
那么
anacron
工具是如何判断这些定时任务已经超过了执行时间的呢?在系统的
/var/spool/anacron/
目录中存在cron.{daily,weekly,monthly}
文件,这些文件中都保存着anacron
工具上次执行时的时间。anacron
工具会去读取这些文件中的时间,然后和当前时间做比较,若果两个时间的差值超过了anacron
工具配置文件中的指定时间差值(一般是1天,7天和一个月)(/etc/anacrontab
文件),就说明有定时任务漏掉了没有被执行,这时anacron
工具会介入而执行这个漏掉的定时任务,从而保证在关机时没有被执行的定时任务,不会被漏掉。
(2)新旧版本Linux中anacron工具的区别
在原先的CentOS 5.x
版中/etc/cron.{daily,weekly,monthly}
这些目录中的定时任务会同时被cron
工具和anacron
工具调用,这样非常容易出现重复执行同一个定时任务的错误。
在CentOS 6.x
中,我们使用cronie-anacron
取代了vixie-cron
软件包。/etc/cron.{daily,weekly