当前位置: 首页 > 科技观察

cronvsanacron:如何在Linux中安排任务

时间:2023-03-13 07:36:16 科技观察

在本文中,我们将解释cron和anacron,并向您展示如何在Linux中设置anacron。我们还将比较这两种工具。要在给定时间或以后安排作业,可以使用at或batch命令,要使命令重复运行,可以使用cron和anacron工具。cron-是一个守护进程,用于运行系统备份、更新等计划任务。它适用于在像服务器这样24X7运行的机器上运行的计划任务。命令/脚本是用cron作业脚本编写的,这些脚本在crontab文件中安排。系统默认的crontab文件是/etc/crontab,但每个用户也可以创建自己的crontab文件,在特定时间运行用户定义的命令。要创建个人crontab文件,只需键入:$crontab-e如何在Linux中设置anacronanacron以每天运行命令。它的工作方式与cron略有不同,因为它假定机器不会一直运行。Cron也适用于在笔记本电脑和台式机等非24X7运行的机器上运行每日、每周和每月的计划任务(LCTT译注:不适合以小时、分钟为单位的任务)。假设您有一个计划任务(如备份脚本)要在每晚半夜使用cron运行,也许您正在睡觉并且那时您的台式机/笔记本电脑已关机。您的备份脚本将不会运行。但是,如果您使用anacron,则可以确保下次打开台式机/笔记本电脑时会执行备份脚本。anacron在Linux中的工作原理Anacron任务列在/etc/anacrontab中,可以使用以下格式安排任务(anacron文件中的注释必须以#符号开头)。上面格式中的perioddelayjob-identifiercommand:period-这是作业的频率,以天为单位指定,或@daily、@weekly、@monthly表示每日、每周、每月。您还可以使用数字:1-每天、7-每周、30-每月或N-天数。delay-这是执行任务前等待的分钟数。job-id-这是写入日志文件的作业的唯一名称。命令-这是要执行的命令或shell脚本。要浏览示例文件,请输入:$ls-l/var/spool/anacron/total12-rw-------1rootroot9Jun110:25cron.daily-rw-------1rootroot9May2711:01cron.monthly-rw-------1rootroot9May3010:28cron.weekly这实际发生了:anacron会在period字段指定的时间检查任务是否已经执行。如果不是,则在等待延迟字段中指定的分钟数后执行命令字段中指定的命令。执行作业后,它会使用作业ID(时间戳文件名)字段中指定的名称将日期记录在/var/spool/anacron目录中的时间戳文件中。现在让我们看一个例子。这将每天运行/home/aaronkilik/bin/backup.sh脚本:@daily10example.daily/bin/bash/home/aaronkilik/bin/backup.sh当机器关闭时预计运行backup.sh,anacron会在机器开机十分钟后运行,而不是等待7天。您应该了解anacrontab文件的两个重要变量:START_HOURS_RANGE-这设置了任务开始运行的时间范围(即任务将仅在这些时间运行)。RANDOM_DELAY-这定义了添加到用户定义任务延迟的最大随机延迟(默认为45)。这就是您的anacrontab文件的样子。anacron–/etc/anacrontab:#/etc/anacrontab:configurationfileforanacron#Seeanacron(8)andanacrontab(5)fordetails.SHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binHOME=/rootLOGNAME=root#这些替换cron'sentries15cron.dailyrun-parts--report/etc/cron.daily710cron.weeklyrun-parts--report/etc/cron.weekly@monthly15cron。monthlyrun-parts--report/etc/cron.monthly@daily10example.daily/bin/bash/home/aaronkilik/bin/backup.sh以下是cron和anacron的比较,以帮助您了解何时使用其中之一。cronanacron它是一个守护进程它不是一个适合服务器的守护进程适合台式机/笔记本电脑让您以分钟为单位运行计划任务只允许您每天在关机时运行计划任务如果计划任务过期则不会执行计划任务,机器关机,则下次开机后执行定时任务。普通用户和root用户都可以使用,只有root用户可以使用(使用特定配置启动普通任务)。cron和anacron的主要区别在于,cron可用于在连续运行的机器上高效运行anacron,而anacron针对的是在一天或一周内关闭的机器。如果您知道任何其他方式,请在评论框中与我们分享。(标题图片:Pixabay,CC0)