Linux——可唤醒停机期间的工作服务

79 篇文章 0 订阅
72 篇文章 1 订阅

1、anacron

anacron不是用来取代crontab的,anacron存在的目的在于处理非24小时一直启动的Linux系统的crontab的执行,以及某些原因导致的超过时间而没有被执行的排程工作anacron每个小时会被crond执行一次。

2、anacron与/etc/anacrontab

anacron是一支程序,其配置文件被放置在/etc/cron.hourly

anacron的语法如下:

[root@study ~]# anacron [-sfn] [job]..
[root@study ~]# anacron -u [job]..
选项与参数:
-s :开始一连续的执行各项工作 (job),会依据时间记录文件的数据判断是否进行;
-f :强制进行,而不去判断时间记录文件的时间戳;
-n :立刻进行未进行的任务,而不延迟 (delay) 等待时间;
-u :仅更新时间记录文件的时间戳,不进行任何工作。
job :由 /etc/anacrontab 定义的各项工作名称。

天数       延迟时间      工作名称定义                            实际要进行的指令串

天数单位为天,延迟时间单位为分钟,工作名称可自定义,指令字符串则通常与crontab的设定相同。

 

[root@study ~]# anacron [-sfn] [job]..
[root@study ~]# anacron -u [job]..
选项与参数:
-s :开始一连续的执行各项工作 (job),会依据时间记录文件的数据判断是否进行;
-f :强制进行,而不去判断时间记录文件的时间戳;
-n :立刻进行未进行的任务,而不延迟 (delay) 等待时间;
-u :仅更新时间记录文件的时间戳,不进行任何工作。
job :由 /etc/anacrontab 定义的各项工作名称。

 

· 天数:anacron 执行当下与时间戳 (/var/spool/anacron/ 内的时间纪录文件) 相差的天数,若超过此天数,就
准备开始执行,若没有超过此天数,则不予执行后续的指令。
· 延迟时间:若确定超过天数导致要执行排程工作了,那么请延迟执行的时间,因为担心立即启动会有其他
资源冲突的问题吧!
· 工作名称定义:这个没啥意义,就只是会在 /var/log/cron 里头记载该项任务的名称这样!通常与后续的目
录资源名称相同即可。
· 实际要进行的指令串:有没有跟 0hourly 很像啊!没错!相同的作法啊!透过 run-parts 来处理的!
根据上面的配置文件内容,我们大概知道 anacron 的执行流程应该是这样的 (以 cron.daily 为例):
(1) 由 /etc/anacrontab 分析到 cron.daily 这项工作名称的天数为 1 天;
(2) 由 /var/spool/anacron/cron.daily 取出最近一次执行 anacron 的时间戳;
(3) 由上个步骤与目前的时间比较,若差异天数为 1 天以上 (含 1 天),就准备进行指令;
(4) 若准备进行指令,根据 /etc/anacrontab 的设定,将延迟 5 分钟 + 3 小时 (看 START_HOURS_RANGE 的设定);
(5) 延迟时间过后,开始执行后续指令,亦即『 run-parts /etc/cron.daily 』这串指令;
(6) 执行完毕后, anacron 程序结束。

crond 与anacron 的关系:
1. crond 会主动去读取 /etc/crontab, /var/spool/cron/*, /etc/cron.d/* 等配置文件,并依据『分、时、日、月、周』
的时间设定去各项工作排程;
2. 根据 /etc/cron.d/0hourly 的设定,主动去 /etc/cron.hourly/ 目录下,执行所有在该目录下的执行文件;
3. 因为 /etc/cron.hourly/0anacron 这个脚本文件的缘故,主动的每小时执行 anacron ,并呼叫 /etc/anacrontab 
的配置文件;
4. 根据 /etc/anacrontab 的设定,依据每天、每周、每月去分析 /etc/cron.daily/, /etc/cron.weekly/, /etc/cron.monthly/ 
内的执行文件,以进行固定周期需要执行的指令。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值