Linux 中怎么设置计划任务:cron 与 anacron(linux计划任务如何设置)

在本篇中,我们会解释 cron 和 anacron,并向你展示如何在 Linux 中设置 anacron。我们也会比较这两个工具。

Linux 中怎么设置计划任务:cron 与 anacron(linux计划任务如何设置)

cron 在 Linux 设置

cron – 是一个用于运行计划任务如系统备份、更新等的守护进程。它适合在那些 24X7 不间断运行的机器如服务器上运行的计划任务。

命令/脚本被写在 cron 任务脚本中,它是在crontab 文件中被安排的。系统默认的 cromtab 文件是/etc/crontab ,但是每个用户也可以创建自己的 cromtab 文件来在特定时间运行用户定义的命令。

要创建一份个人crontab 文件,只要输入:

$ crontab -e

Linux 中怎么设置计划任务:cron 与 anacron(linux计划任务如何设置)

如何在 Linux 中设置 anacron

anacron 用于以天为单位的频率运行命令。它的工作与 cron 稍有不同,它假设机器不会一直开机

cron 也适合在那些不会 24X7 运行如笔记本以及桌面电脑的机器上运行每日、每周以及每月的计划任务(LCTT 译注:不适合按小时、分钟执行任务)。

假设你有一个计划任务(比如备份脚本)要使用 cron 在每天半夜运行,也许你以及睡着,那时你的桌面/笔记本电脑已经关机。你的备份脚本就不会被运行。

然而,如果你使用 anacron,你可以确保在你下次开启桌面/笔记本电脑的时候,备份脚本会被执行。

anacron 如何在 Linux 工作

anacron 任务被列在 /etc/anacrontab 中,任务可以使用下面的格式(anacron 文件中的注释必须以 # 号开始)安排。

period delay job-identifier command

从上面的格式中:

  • period – 这是任务的频率,以天来指定,或者是@daily@weekly@monthly 代表每天、每周、每月一次。你也可以使用数字:1 – 每天、7 – 每周、30– 每月,或者N – 几天。
  • delay – 这是在执行一个任务前等待的分钟数。
  • job-id – 这是写在日志文件中任务的独特名字。
  • command – 这是要执行的命令或 shell 脚本。

要浏览示例文件,输入:

$ 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

这是实际发生的:

  • anacron 会检查任务是否已经在 period 字段指定的时间被被执行了。如果没有,则在等待 delay 字段中指定的分钟数后,执行 command字段中指定的命令。
  • 一旦任务被执行了,它会使用 job-id (时间戳文件名)字段中指定的名称将日期记录在 /var/spool/anacron 目录中的时间戳文件中。

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

@daily 10 example.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: configuration file for anacron# See anacron(8) and anacrontab(5) for details.SHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binHOME=/rootLOGNAME=root# These replace cron's entries1 5 cron.daily run-parts --report /etc/cron.daily7 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 的比较,帮助你理解何时用他们其中一个。

cron

anacron

它是守护进程

它不是守护进程

适合服务器

适合桌面/笔记本电脑

可以让你以分钟级运行计划任务

只能让你以天为基础来运行计划任务

关机时不会执行计划任务

如果计划任务到期,机器是关机的,那么它会在机器下次开机后执行计划任务

普通用户和 root 用户都可以使用

只有 root 用户可以使用(使用特定的配置启动普通任务)

cron 和 anacron 主要的区别在于 cron 能在那些持续运行的机器上有效地运行,而 anacron 是针对那些会在一天内或者一周内会关机的机器。

如果你还知道其他方式,请在评论栏中与我们分享。

本文地址: https://www.linuxprobe.com/cron-anacron-work.html ‎

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年8月25日 上午9:22
下一篇 2023年8月25日 上午9:38

相关推荐

  • 什么是全过程项目管理

    什么是全过程项目管理 全过程项目管理是一种新型的项目管理方法,它将项目管理的各个方面整合在一起,涵盖了从项目规划、执行、监控和收尾的整个生命周期,以确保项目的成功交付。全过程项目管…

    科研百科 2024年5月23日
    52
  • 党建宣传信息不足

    党建宣传信息不足党建宣传信息不足党是“中国最强大的法律领导者”“我国最强大的法律领导者”“为国、执政者”“大家都知道,为了保障国家利益,我们必须要保障人民利益,让人民有一个安稳的休…

    科研百科 2024年11月20日
    2
  • 工程项目管理系统开源

    工程项目管理系统开源: 让项目管理变得更加高效 随着现代项目管理的重要性日益增加,越来越多的公司开始意识到使用工程项目管理系统来提高工作效率。工程项目管理系统可以帮助项目管理人员更…

    科研百科 2024年12月1日
    5
  • 上海玩具检测科研项目

    上海玩具检测科研项目 近年来,随着玩具市场的不断发展,玩具安全问题也越来越受到人们的关注。为了保障儿童的健康和安全,上海玩具检测科研项目应运而生。 上海玩具检测科研项目是上海市教育…

    科研百科 2025年1月29日
    1
  • 四新,新技术,新材料,新工艺,新设备管理办法

    随着科技的不断发展,新技术、新材料、新工艺、新设备管理办法也在不断变化和更新。四新指的是新技术、新材料、新工艺、新设备,它们都是当前科技发展的重要方向,对于推动社会的进步和发展具有…

    科研百科 2024年12月6日
    5
  • 如何找科研项目去申报

    如何找科研项目去申报 科研项目申报是一项非常重要的任务,它可以帮助你实现你的研究目标,并为你带来巨大的回报。在申报科研项目时,你需要找到最适合你的项目,并确保你的项目是具有挑战性和…

  • 科研项目间接费用指

    科研项目间接费用指是指用于支持科研项目的间接费用,包括租金、工资、保险、福利和其他费用。这些费用通常是由项目公司或资助机构承担,并且通常会根据项目预算和需求进行分配。 间接费用指是…

    科研百科 2025年3月27日
    3
  • 跨系统项目管理软件设计

    跨系统项目管理软件设计 随着现代软件开发项目的不断增多,跨系统项目管理软件的设计变得越来越重要。这些软件可以帮助开发人员更好地管理项目,提高项目的效率和质量。本文将介绍跨系统项目管…

    科研百科 2024年12月12日
    2
  • 向华为学习:研发项目管理的六个关键实践(华为研发项目管理方法)

    任正非先生在华为一直强调:为客户服务是华为存在的唯一理由。 事实上,不只是华为,任何一个公司都应该把任正非先生的这句话记在心里,刻在墙上,并指导公司所有人的行为。只有服务好了客户公…

    科研百科 2024年2月16日
    181
  • 校园联合科研项目

    校园联合科研项目 随着科技的不断发展,我们越来越需要团队合作的力量来推动项目的顺利完成。因此,许多学校都开始了校园联合科研项目,旨在促进学术交流和科研合作。 校园联合科研项目是一种…

    科研百科 2025年2月10日
    3