Cron 与 Anacron:如何在 Linux 上使用 Anacron 安排作业

在这篇文章中,我们将解释计划任务纳克朗还向您展示了如何在 Linux 上设置 anacron。我们还将对这两个实用程序进行比较。

到,您可以使用 '' 或者 '' 命令并设置命令重复运行,您可以使用计划任务纳克朗设施。

– 是一个守护进程,用于运行计划任务,例如系统备份、更新等。它适合在服务器等24X7连续运行的机器上运行计划任务。

命令/任务被编写到 crontab 文件中安排的 cron 作业中。默认的系统 crontab 文件是/etc/crontab,但每个用户也可以创建自己的 crontab 文件,该文件可以在用户定义的时间启动命令。

要创建个人 crontab 文件,只需键入以下内容:

$ crontab -e

如何在 Linux 中设置 Anacron

阿纳克朗用于以天定义的频率定期运行命令。它的工作原理与计划任务;假设机器不会一直通电。

它适用于在不会全天候 (24-7) 运行的计算机(例如笔记本电脑和台式机)上运行通常由 cron 运行的每日、每周和每月计划作业。

假设您有一个计划任务(例如备份脚本)每天午夜使用 cron 运行,可能是在您睡着的时候,并且您的台式机/笔记本电脑那时已关闭。您的备份脚本将不会被执行。

但是,如果您使用纳克朗,您可以放心,下次再次打开台式机/笔记本电脑时,将执行备份脚本。

Anacron 如何在 Linux 中工作

anacron 职位列于/etc/anacrontab并且可以使用以下格式安排作业(anacrontab 文件中的注释必须以#)。

period   delay   job-identifier   command

由上面的格式可知:

  • 时期– 这是以天为单位指定的作业执行频率,或者以 @daily、@weekly 或 @monthly 的形式指定每天、每周或每月一次。您还可以使用数字:1 – 每天、7 – 每周、30 – 每月和 N – 天数。
  • 延迟– 这是执行作业之前等待的分钟数。
  • 职位编号– 这是写入日志文件中的作业的独特名称。

要查看示例文件,请键入:

$ ls -l /var/spool/anacron/

total 12
-rw------- 1 root root 9 Jun  1 10:25 cron.daily
-rw------- 1 root root 9 May 27 11:01 cron.monthly
-rw------- 1 root root 9 May 30 10:28 cron.weekly
  • 命令– 这是要执行的命令或 shell 脚本。
这就是实际发生的情况:
  • Anacron 将检查作业是否已在 period 字段中指定的时间内执行。如果没有,则在等待延迟字段中指定的分钟数后执行命令字段中指定的命令。
  • 作业执行后,它将日期记录在时间戳文件中/var/spool/anacron目录的名称在 job-id(时间戳文件名)字段中指定。

现在让我们看一个例子。这将运行/home/aaronkilik/bin/backup.sh每日脚本:

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh

如果机器关闭时备份文件job预计会运行,anacron会在机器开机10分钟后运行它,而不必再等待7天。

您应该了解 anacrontab 文件中有两个重要变量:

  • START_HOURS_RANGE– 这设置了作业启动的时间范围(即仅在接下来的时间内执行作业)。
  • 随机延迟– 这定义了添加到用户定义的作业延迟的最大随机延迟(默认为 45)。

这就是您的 anacrontab 文件可能的样子。

Anacron – /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
HOME=/root
LOGNAME=root

# These replace cron's entries
1       5       cron.daily      run-parts --report /etc/cron.daily
7       10      cron.weekly     run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh                                                                      

下面是一个比较计划任务纳克朗帮助您了解何时使用它们。

克朗阿纳克朗
这是一个守护进程它不是一个守护进程
适用于服务器机器适用于台式机/笔记本电脑
使您能够每分钟运行计划的作业仅允许您每天运行计划作业
机器关闭时不执行计划作业如果在计划作业到期时机器关闭,则下次开机时将执行计划作业
普通用户和root用户都可以使用除非另有说明,否则只能由 root 使用(为具有特定配置的普通用户启用)

之间的主要区别计划任务纳克朗是那个计划任务在连续运行的机器上有效工作纳克朗适用于将在一天或一周内关闭的机器。

如果您知道其他方式,请使用下面的评论表与我们分享。