1、命令简介
anacron命令可用于定期执行命令,频率以天为单位指定,与cron(8)不同的是,它不假定机器连续运行。因此,它可以用于每天不运行24小时的机器上,以控制通常由cron控制的每日、每周和每月作业。
2、命令用法
anacron [-s] [-f] [-n] [-d] [-q] [-t anacrontab] [job] ...
anacron -u [-t anacrontab] [job] ...
anacron [-V|-h]
3、命令描述
可以使用anacron定期执行命令,频率以天为单位指定。与cron(8)不同,它不假设机器是连续运行的。因此,可以在不是一天24小时运行的机器上使用它来控制通常由cron控制的每天、每周和每月的作业。
当执行时,anacron从配置文件中读取作业列表,通常是/etc/anacrontab
(参见anacrontab(5))。该文件包含anacron控制的作业列表。每个作业条目指定一个以天为单位的时间段、一个以分钟为单位的延迟、一个唯一的作业标识符和一个shell命令。
对于每个作业,anacron检查该作业是否在最近n天内执行过,其中n是为该作业指定的时间段。如果不是,anacron在等待指定为延迟参数的分钟数之后,运行作业的shell命令。
命令退出后,anacron将该作业的日期记录在一个特殊的时间戳文件中,这样它就可以知道何时再次执行它。时间计算只使用日期。时间是没有用的。
当没有其他作业要运行时,anacron将退出。
anacron只考虑那些在anacrona选项卡中指定的标识符与任何作业命令行参数匹配的作业。作业参数可以是shell通配符模式(确保在shell中使用足够的引号保护它们)。不指定作业参数等同于指定*
(即,将考虑所有作业)。
除非给出了-d
选项(参见下文),否则anacron在启动时就会切换到后台,并且父进程会立即退出。
除非给出-s
或-n
选项,否则anacron会在延迟结束后立即启动作业。不同作业的执行是完全独立的。
4、命令选项
选项 | 描述 |
-f | 强制执行作业,忽略时间戳。 |
-u | 只更新作业的时间戳,到当前日期,但不运行任何内容。 |
-s | 序列化作业的执行,在前一个作业完成之前,anacron不会启动新作业 |
-n | 现在运行作业。忽略/etc/anacrontab文件中的延迟规格。这个选项意味着-s。 |
-d | 在此模式下,anacron将信息性消息输出到标准错误和syslog,作业的输出像往常一样通过邮件发送 |
-q | 禁止将消息显示为标准错误,仅适用于-d参数结合使用。 |
-t anacrontab | 使用指定的anacrontab,而不是默认值 |
-V | 打印版本信息,退出。 |
-h | 打印简短的使用信息,然后退出。 |
5、使用示例
1)使用/root/myspool存储/etc/myanacron文件中定义的作业的所有时间戳信息
# anacron -S /root/myspool -t /etc/myanacron
2)使用-f参数,强制执行作业,忽略时间戳
# anacron -f /root/myspool
3)只将作业的时间戳更新到当前日期,但不运行任何操作
# anacron -d -u
6、相关文件
文件 | 说明 |
/etc/anacrontab | 包含作业规范。有关完整描述,请参阅anacrontab(5)。 |
/var/spool/anacron | anacron使用该目录存储时间戳文件。 |