24.2. 使用 Anacron 计划周期性作业
anacron
(如 cron
)是一项允许您定期调度运行任务(通常称为作业)的服务。但是 ,anacron
与 cron
有两种不同之处:
-
如果系统未在计划的时间运行,
anacron
作业会延迟到系统运行; -
anacron
作业最多可以每天运行一次。
用户 在 anacron 表文件中指定 anacron 作业,也称为 anacrontab
文件。然后,crond 服务读取这些文件,该服务
将执行作业。
24.2.1. Anacrob 任务的先决条件
在调度 anacron
作业前:
验证您已安装 cronie-anacron 软件包:
~]# rpm -q cronie-anacron
cronie-anacron 可能已经安装,因为它是 cronie 软件包的子软件包。如果没有安装,请使用这个命令:
~]# yum install cronie-anacron
安装时,crond
服务
已启用 - 在引导时自动启动。如果禁用该服务,启用该服务:~]# systemctl enable crond.service
为当前会话启动
crond
服务:~]# systemctl start crond.service
(可选) 配置 anacron.例如,您可以更改:
- 执行作业时要使用的 shell
-
PATH
环境变量 如果作业发送电子邮件,请邮件.
有关配置 anacron 的相关信息,请参见
anacron
tab(5)手册页。
默认情况下,anacron 配置包含一个阻止其运行(如果计算机未插入)的条件。此设置可确保通过运行 anacron 作业,防止垃圾排空。
如果您想允许 anacron 在 battery 电源上运行,请打开 /etc/cron.hourly/0anacron
文件并注释掉以下部分:
# Do not run jobs when on battery power online=1 for psupply in AC ADP0 ; do sysfile="/sys/class/power_supply/$psupply/online" if [ -f $sysfile ] ; then if [ `cat $sysfile 2>/dev/null`x = 1x ]; then online=1 break else online=0 fi fi done
24.2.2. 调度 Anacron 作业
以 root 用户身份调度 anacron 作业
root
用户使用 /etc/anacrontab 中的 anacron
表。以 root
用户身份使用以下步骤调度作业。
以 root
用户身份调度 anacron 作业
选择:
-
执行作业的频率。例如,使用
1
指定每天或 3 在3
天内指定一次。 -
执行作业的延迟。例如,使用
0
指定不延迟,或者
60 代表 1 小时的延迟。 -
作业标识符,它将用于日志记录。例如,使用
my.anacron.job
将作业记录为my.anacron.job
字符串。 要执行的命令。例如:使用
/usr/local/bin/my-script.sh
将所选值合并到作业规格中。以下是一个示例规格:
3 60 cron.daily /usr/local/bin/my-script.sh
-
执行作业的频率。例如,使用
-
将结果行添加到
/etc/anacrontab
。
该作业现在将按计划运行。
有关简单作业示例,请查看 /etc/anacrontab
文件。有关如何指定作业的完整参考,请参见 anacrontab(5)手册页。
计划 Hourly、Daily、Weekly 和 Monthly 作业
您可以使用 anacron 计划每日、每周和每月的作业。请参阅 “计划 Hourly、Daily、Weekly 和 Monthly 作业”一节。