在 以前的文章 我向您介绍了 cron,这是一个在特定时间自动运行任务的系统程序。 现在我们将了解如何使用 Anacron 自动执行任务。 Anacron 让我们克服了 Cron 的一个弱点。如果计算机在应该执行任务时处于关闭状态,则直到明年这个时候计算机才会再次执行该任务。
就 Anacron 而言, 当计算机再次打开时,它会执行尚未完成的任务。
如何使用 Anacron 自动执行任务
当计算机启动时,Anacron 会查找给定指令的上次执行时间以及指令执行的频率。与 Cron 一样,待办事项列表保存在一个名为 anacrontab 的文本文件中。但是,有一个重要的区别, 在这种情况下,通过确定星期、分钟延迟、作业标识符和要执行的命令来设置日期。
对于每个任务,Anacron 会检查它是否在一定天数内执行。该天数是该项工作指定的期限。如果尚未运行,Anacron 将等待所需的分钟数,然后运行。然后记录日期,作为何时再次运行的指示。
我们可以通过名称或在主要发行版中的 cronie 包中找到 anacron。
要运行它,我们必须指定以下参数:
-F: 即使不在指定日期也会执行任务。
-u: 将作业的日期更改为当前日期但不执行它们。
-s: 表示当前一个任务完成时执行下一个任务。
-n: 就像使用 -fy 参数一样
-q: 如果与 -d 一起使用,则可以防止显示错误消息。
-t: 告诉 Anacron 在哪里可以找到任务列表。
-T: 检查任务列表设置并在必要时显示错误消息。
-S 指定存储时间戳的目录。
在 Anacrontab 文件中我们必须添加以下参数
SHELL=/bin/bash: 指定应使用 Bash 作为命令解释器。
邮件= 等号后,我们指明一个电子邮件地址,以便向我们发送错误报告。尽管在桌面发行版中没有必要这样做。
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin: 这样我们就不必为每个任务添加路线。
Anacrontab 任务的语法是 period delay job id command,其中:
时间: 这是必须执行工作的频率。它可以用一个句点来表示(@daily、@weekly 或 @monthly 分别表示日、周或月)或者用数字来表示(1 表示日、7 表示周、30 表示月、任意数字表示任意天数)。
延迟:这是开始之前等待的时间。以分钟为单位
作业 ID: 这是分配给任务的名称,用于将其与其他任务区分开来
命令:这是 anacron 必须在指定时间运行的命令。
我们还需要创建一个目录来运行各种任务。
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
这将创建用于保存每日、每周和每月执行脚本以及上次 anacron 执行报告的目录。
告诉它使用这些文件夹:
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
我们从终端编辑配置文件
nano ~/.local/etc/anacrontab
我们添加以下几行:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
可以配置另外两个变量
START_HOURS_RANGE:表示作业应仅在特定时间范围内开始。
RANDOM_DELAY:设置最大随机延迟
以上就是我们对两个用于自动执行计算机任务的有用命令行工具的简要回顾。在后面的文章中,我们将看到图形应用程序也允许我们做同样的事情。