28.2. anacron

anacron 是和 cron 相似的任务调度器,只不过它并不要求系统持续运行。它可以用来运行通常由 cron 运行的每日、每周、和每月的作业。

要使用 anacron 服务,你必须安装了 anacron RPM 软件包,而且 anacron 服务必须在运行。要判定该软件包是否被安装,使用 rpm -q anacron 命令。要判定该服务是否在运行,使用 /sbin/service anacron status 命令。

28.2.1. 配置 anacron 任务

anacron 任务被列在配置文件 /etc/anacrontab 中。文件中的每一行都代表一项任务,格式是:

period   delay   job-identifier  command

对于每项任务,anacron 先判定该任务是否已在配置文件的 period 字段中指定的期间内被执行了。如果它在给定期间内还没有被执行,anacron 会等待 delay 字段中指定的分钟数,然后执行 command 字段中指定的命令。

任务完成后,anacron 在 /var/spool/anacron 目录内的时间戳文件中记录日期。只有日期被记录(无时间),而且 job-identifier 的值被用作时间戳文件的名称。

和 cron 配置文件一样,SHELLPATH 之类的环境变量可以在 /etc/anacrontab 文件的前部定义。

默认的配置文件看起来和以下相似:

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# These entries are useful for a Red Hat Linux system.
1       5       cron.daily              run-parts /etc/cron.daily
7       10      cron.weekly             run-parts /etc/cron.weekly
30      15      cron.monthly            run-parts /etc/cron.monthly

图 28-1. 默认的 anacrontab

如你在 图 28-1 中所见,配置 Red Hat Linux anacron 的目的是确保每日、每周、和每月的 cron 任务都被运行。

28.2.2. 启动和停止服务

要启动 anacron 服务,使用 /sbin/service anacron start 命令。要停止该服务,使用 /sbin/service anacron stop 命令。推荐你在引导时启动该服务。关于在引导时自动启动 anacron 的详情,请参阅 第14章