anacron与cron的差异点
在网上可以可以看到许多文章都把anacron与cron来做较量,但实际上这两者之间的差距照旧蛮大的。
/var/spool/cron/用户名
, /etc/crontab
, /etc/cron.d/*
). 而anacron只有一个配置任务的处所(默认为 /etc/anacrontab
, 也可以通过 -t 配置其他路径的设置文件)。从上面可以看出,anacron其实并不是设计来按时执行任务的,它的主要成果照旧为了缓解cron中一瞬间大量任务并发执行而导致系统压力过大的问题。
/etc/anacrontab设置文件说明
一个 /etc/anacrontab
内容大抵如下:
cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
看起来跟 cron
的设置文件有点像。都是先界说情况变量,再界说执行打算。
界说情况变量的部门跟cron一样,只是这些情况变量中,有一些非凡变量值得说明一下:
暗示anacron在执行任务前先延时一段随记的时间再执行,这段随机的时间为0-45分钟之内的随机数。
指定了只有在破晓3点到晚上22点这个时间段内才答允执行任务。
界说执行打算部门就跟 cron
不同很大了。
执行打算由四部门构成:
循环天数,暗示任务几多天执行一次。
暗示启动Anacron和运行功课时间之间的延迟,单元为分钟. 虽然前提是自最后一次运行之后所颠末的时间超出了循环天数。 可是它并不是功课真正运行的时间,真正运行的时间还需要加上RANDOME_DELAY中配置的随机分钟数。
功课的标识符。anacron在执行任务时会将日期写入 /var/spool/anacron/$job-identifier
文件中
实际运行的呼吁。这里的 run-parts
是一个运行指定目次中所有措施与剧本的呼吁,昆山软件开发,可以通过 man run-parts
来查察它的说明
anacron常用的选项
anacron的常用选项有下面几个:
让anacron从指定设置文件中读取设置,常用于普通用户来打点小我私家任务
设定新的spool目次来记录任务执行的时间戳,常用于普通用户来打点小我私家任务
测试设置文件是否正确
强制执行所有的任务,而不管之前的执行日期是否高出循环天数
将所有任务的执行日期都更新为当前日期,而不真正的执行任务
串行地执行任务,只有前一个任务完成后才开始下一个任务