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

在本文中,我们将介绍cronanacron ,并介绍如何在Linux上设置anacron。 我们还将比较这两个公用事业。

在给定或更晚的时间安排任务 ,您可以使用' at '或' batch '命令并设置重复运行的命令,您可以使用cronanacron设施。

Cron - 是用于运行计划任务(如系统备份,更新等)的守护程序。 适用于连续运行24X7(如服务器)的计算机上运行计划任务。

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

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

$ crontab -e

如何在Linux中设置Anacron?

Anacron用于以周期定义的频率定期运行命令。 它与cron有点不同 假设机器一直不会上电。

适用于通常由cron运行的每日,每周和每月计划作业,不会运行24-7的机器,如笔记本电脑和台式机。

假设你有一个计划的任务(如备份脚本 ),每半年可以使用cron运行,可能当你睡着了,你的桌面/笔记本电脑在那个时候关闭了。 您的备份脚本将不会被执行。

但是,如果您使用anacron ,您可以放心,下次再次启动桌面/笔记本电脑时,将执行备份脚本。

Anacron在Linux中的工作原理

anacron作业列在/ etc / anacrontab中 ,作业可以使用以下格式进行安排(anacrontab文件中的注释必须以开头)。

period   delay   job-identifier   command

从以上格式:

  • 期间 - 这是以天为单位指定的工作执行频率,或者每天,每周或每月@daily,@周,或@monthly一次。 您也可以使用数字:1 - 每天,7 - 每周,30 - 月和N - 天。
  • 延迟 - 这是在执行作业之前等待的分钟数。
  • job-id - 这是在日志文件中编写的作业的独特名称。

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

$ 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将检查在期间字段内的指定期间内是否已经执行作业。 如果没有,则在等待延迟字段中指定的分钟数后,执行命令字段中指定的命令。
  • 作业执行完成后,它将使用job-id(timestamp文件名)字段中指定的名称将日期记录在/ var / spool / anacron目录中的时间戳记文件中。

现在来看一个例子。 这将运行/home/aaronkilik/bin/backup.sh脚本每天:

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

如果在预期运行backup.sh作业时机器关闭,anacron将在机器上电后10分钟运行,而无需再等待7天。

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

  • START_HOURS_RANGE - 这将设置作业启动的时间范围(即在以后几个小时内执行作业)。
  • RANDOM_DELAY - 这定义了添加到用户定义的作业延迟的最大随机延迟(默认为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                                                                      

以下是cronanacron的比较 ,以帮助您了解何时使用它们。

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

cronanacron之间的主要区别是, cron可以在连续运行的机器上有效地工作,而anacron适用于将在一天或一周内关机的机器。

如果您有任何其他方式,请使用下面的评论表单与我们分享。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏