linux 中的 anacron 命令和示例
anacron命令用于以天指定的频率定期执行命令。与 cron相比,它的主要优点是它可以在不连续运行的机器上使用。在cron 中,如果机器没有按计划作业的时间运行,那么它会跳过它,但anacron有点不同,因为它首先检查作业的时间戳,然后决定是否运行它以及它的时间戳是否>= n (n 是定义的天数)然后在指定的时间延迟后运行它。
它主要由两个重要的文件构成:
- /etc/anacrontab :它包含作业的规范。
- 见行SHELL=/bin/sh 。它使用sh而不是bash你不能运行 bash 脚本。
- 最后一个表代表不同的调度。第一列是天数(n),即周期,第二列是时间延迟(以分钟为单位)。
- /var/spool/anacron :Anacron 使用此目录来存储时间戳文件。它代表不同类别工作的时间戳,即每天、每周、每月等。
句法:
anacron [-s] [-f] [-n] [-d] [-q] [-t anacrontab] [-S spooldir] [job]
anacron [-S spooldir] -u [-t anacrontab] [job] ...
anacron [-V|-h]
anacron -T [-t anacrontab]
选项:
- f :用于强制执行作业,忽略时间戳。
- u :仅将作业的时间戳更新为当前日期,但不运行任何内容。
- s :序列化作业的执行。 Anacron 不会在前一个工作完成之前开始新工作。
- n :立即运行作业。忽略任何延迟。
- d:不要分叉到后台。在这种模式下,Anacron 将向标准错误以及系统日志输出信息性消息。作业的输出照常邮寄。
- q :将消息抑制为标准错误。仅适用于-d 。
- V(使用指定的 anacrontab):打印版本信息并退出。
- h(使用指定的 anacrontab):打印简短的使用信息,然后退出。
笔记:
- 您可以将任何脚本添加到etc/cron.daily或etc/cron.weekly或cron.monthly目录中。但记住脚本应该是 sh 而不是 bash。
- 不要忘记为您的文件授予可执行权限sudo chmod +x filename 。
- 目录中的脚本会根据它们所在的目录自动执行。
例子:
- 更改作业的时间戳。观察时间戳值的变化。
- 执行强制执行。注意时间延迟。
- 序列化执行。
- 打印版本信息。
- 打印排序使用消息。
注意:这里我们在所有命令中都使用了 -d选项以在屏幕上显示实际发生的情况。