周期任务管理器anacron

一、介绍

anacron是一个用于执行周期任务的命令,与cron命令不同,anacron并不认为machine是处于24小时运行的状态,它一般用于不是长期运行的machine上的任务的执行,用来控制按天、按星期、按月执行的任务。

anacron从/etc/anacrontab配置文件中读取任务列表。在/etc/anacrontab配置文件中的每一条指定了任务执行的周期(以天为单位),固定的延迟时间,唯一的任务名称和执行的相应shell命令。

对于/etc/anacrontab配置文件中指定的一条任务,anacron会检查这个任务执行的周期,如果上一次执行这一任务到现在为止的时间间隔超过了执行周期,则anacron会运行这个任务对应的shell命令,当然不是马上运行,而是等待固定的延迟时间之后再执行。当shell命令被执行后,anacron会将执行时间记录到一个特定的文件中,这样下次执行的时候就知道上一次执行的具体时间了。

如果anacrontab中没有任务,则anacron会退出。

anacron任务是由crond来保证定时执行的。crond服务在系统启动后默认启动,crond会周期性执行/etc/cron.d/0hourly,在/etc/cron.d/0hourly中会执行/etc/cron.hourly目录中的任务,在/etc/cron.hourly目录中有0anacron文件,其中会根据判断条件决定时候执行/usr/sbin/anacron -s任务。上一次执行任务的时间被记录在/var/spool/anacron/cron.daily文件中,精确度到天。

二、参数

anacron支持的参数如下:

-f:强制执行所有的任务,忽略时间间隔

-u:更新所有任务的时间戳为当前时间,但是不执行任务

-s:串行化执行所有任务,当前面的任务没有执行完不会执行后面的命令

-n:立即执行任务,忽略时间延迟,-n隐含-s

-d:anacron不在后台运行,所有消息输出到标准输出和syslog中

-q:消息输出到标准错误中,需要和-d一起使用

-t some_anacrontab:使用特定的配置文件,而不是/etc/anacrontab

-S spooldir:指定记录时间戳的目录

-T:测试/etc/anacrontab文件是否书写正确,如果存在错误则输出1,否则输出0.

三、配置文件

默认情况下,我们不需要手动执行anacron命令,只需要维护/etc/anacrontab配置文件,所有的工作都会被自动执行。

anacrontab文件中包含了任务描述行,环境变量行和空行,其中最主要的是任务描述行。任务描述行有下面几个字段:

period in days:指定任务的执行间隔,以天为单位,一般设置为1,7,或者设置为@daily、@weekly、@monthly

delay in minutes:指定在执行任务前等待的间隔,可以设置为0表示立即执行。

job-identifier:在配置文件中唯一的任务标识

command:执行任务的命令

环境变量行的变量:

START_HOURS_RANGE:表示在一天中能够执行任务的时间范围

RANDOM_DELY:运行任务之前随机等待的时间,这个值将会被添加到delay in minutes上。

根据上面的配置信息,我们描述一下anacron的执行流程:

  1. 读取/var/spool/anacron/cron.daily文件中anacron上一次执行的时间;
  2. 如果上一次执行的时间距离现在的时间超过一天,就执行cron.daily任务;
  3. 只会在3-22点之间执行这个任务;
  4. 执行任务之前强制延迟5min,然后随机延迟0-45min;
  5. 使用nice run-parts命令执行/etc/cron.daily目录中的任务

四、与cron比较

1.cron任务是通过服务crond来定期执行的,而anacron命令没有守护进程,是被crond定期启动执行的;

2. cron任务在检查到是会立即执行,而anacron会有一个随机延迟时间;

3. cron粒度能够精确到分钟,anacron只能精确到天。

  • 31
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aolitianya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值