Linux系统入门学习:Linux中的anacron命令


如果我们的Linux主机是24全天全年的处于开机状态,我们只需要atd与crond这两个服务即可,如果我们的服务器并非24小时无间断的启动,那么我们就需要anacron的帮助了。

anacron并不能取代cron去运行某项任务,而是以天为单位或者是在启动后立刻进行anacron的动作,它会去侦测停机期间应该进行但是并没有进行的crontab任务,并将该任务运行一遍后,anacron就会自动停止了。

anacron会以一天、七天、一个月周期去侦测系统中未进行的crontab任务,因此对于某些特殊的使用环境非常有帮助。anacron会去会去分析现在的时间与时间记录档所记载的上次运行anacron的时间,两者比较厚若发现有差异,也就是在某些时刻没有进行crontab,那么此时anacron就会开始执行未运行的crontab了。所以anacron也是听过crontab来运行的,因此anacron运行的时间通常由两个,一个是系统启动期间运行,一个是写入crontab的排程中,这样才能够在特定时间分析系统未进行的crontab工作。我们可以使用ll  /etc/cron*/*ana*的方式来查看anacron的侦测时间。但是我们仔细分析该文件的话,发现它主要是执行anacron命令。

anacron命令的语法如下:

(1)-s开始连续的运行各项工作,会一句时间记录当的数据判断是否进行。

(2)-f强制进行,而不去判断时间登录档的时间戳。

(3)-n立即进行未进行的任务,而不延迟等待时间。

(4)-u仅升级时间记录当的时间戳,不进行任何工作。

而anacron的配置文件是/etc/anacrontab,而它的很多内容则是在/var/spool/anacron里面保存。

当anacron下达anacron  -s  cron.daily时,它会有如下的步骤:

(1)由/etc/anacrontab分析到cron.daily这项工作名称的天数为一天。

(2)由/var/spool/anacron/cron.daily取出最近一次运行anacron的时间戳。

(3)把取出的时间戳与当前的时间戳相比较,如果差异超过了一天,那么就准备进行命令。

(4)若准备进行命令,根据/etc/anacrontab的配置,将延迟65分钟。

(5)延迟时间后,开始运行后续命令,也就是run-parts  /etc/cron.daily这串命令。

(6)运行完毕后,anacron程序结束。

Linux计划任务(at batch crontab anacron) 

本文永久更新链接地址

相关内容