在本文中,我们将介绍cron和anacron ,并介绍如何在Linux上设置anacron。 我们还将比较这两个公用事业。
要在给定或更晚的时间安排任务 ,您可以使用' at '或' batch '命令并设置重复运行的命令,您可以使用cron和anacron设施。
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文件可能看起来像。
# /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
以下是cron和anacron的比较 ,以帮助您了解何时使用它们。
克龙 | anacron的 |
---|---|
这是一个守护进程 | 这不是一个守护进程 |
适用于服务器机器 | 适用于台式机/笔记本电脑 |
使您能够每分钟运行排定的作业 | 只允许您每天运行排定的作业 |
当机器关闭时,不执行计划作业 | 如果机器在计划作业到期时关闭,则在下次启动机器时将执行计划作业 |
可以由普通用户和root使用 | 除非另有说明,否则只能由root使用(对具有特定配置的普通用户启用) |
cron和anacron之间的主要区别是, cron可以在连续运行的机器上有效地工作,而anacron适用于将在一天或一周内关机的机器。
如果您有任何其他方式,请使用下面的评论表单与我们分享。