作家
登录

在Linux中怎么使用cron计划任务

作者: 来源: 2017-11-23 10:16:21 阅读 我要评论

  • */5 08-18/2 * * * /usr/local/bin/mycronjob.sh 
  • 有时,你欲望功课袈溱营业时代准时运行。

    这个 cron 功课袈溱上午 8:00 到下昼 18:59 之间,每五分钟运行一次功课。

    须要留意的一件工作是:除法表达式的结不雅必须是余数为 0(即整除)。换句话说,在这个例子中,这个功课被设置为在上午 8 获得下昼 6 点之间的偶数小时每 5 分钟运行一次(08:00、08:05、 08:10、 08:15……18:55 等等),而不运行在奇数小时。别的,这个功课不克不及运行鄙人昼 7:00 到上午 7:59 之间。(LCTT 译注:此处本文表述有误,根据精确情况修改)

    我信赖,你可以根据这些例子想到很多其它的可能性。

    限制拜访 cron

    通俗用户应用 cron 拜访可能会犯缺点,例如,可能导致体系资本(比如内存和 CPU 时光)被耗尽。为避免这种可能的问题, 体系治理员可以经由过程创建一个 /etc/cron.allow 文件去限制用户拜访,它包含了一个许可去创建 cron 功课的用户列表。(不管是否列在这个列表中,)不克不及阻拦 root 用户应用 cron。

    经由过程阻拦非 root 用户创建他们本身的 cron 功课,那也许须要将非 root 用户的 cron 功课添加到 root 的 crontab 中, “然则,等等!” 你说,“不是以 root 去运行这些功课?” 不必定。在这篇文┞仿中的第一个示例中,涌如今注释中的用户名字段可以用于去指定一个运行功课的用户 ID。这可以防止特定的非 root 用户的功课以 root 身份去运行。下面的示例展示了一个功课定义,它以 “student” 用户去运行这个功课:

    1. 04 07 * * * student /usr/local/bin/mycronjob.sh 

    如不雅没有指定用户,这个功课将以 contab 文件的所有者用户去运行,在这个情况中是 root。

    cron.d

    目次 /etc/cron.d 中是一些应用法度榜样,比如 SpamAssassin 和 sysstat 安装的 cron 文件。因为,这琅绫腔有 spamassassin 或者 sysstat 用户,这些法度榜样须要一个地位去放置 cron 文件,是以,它们被放在 /etc/cron.d 中。

    下面的 /etc/cron.d/sysstat 文件包含体系晃荡申报(SAR)相干的 cron 功课。这些 cron 文件和用户 cron 文件格局雷同。

    1. # Run system activity accounting tool every 10 minutes 
    2.  
    3. */10 * * * * root /usr/lib64/sa/sa1 1 1 
    4.  
    5. # Generate a daily summary of process accounting at 23:53 
    6.  
    7. 53 23 * * * root /usr/lib64/sa/sa2 -A 

    sysstat 包安装了 /etc/cron.d/sysstat cron 文件来运行法度榜样生成 SAR。

    该 sysstat cron 文件有两行履行义务。第一行每十分钟去运行 sa1 法度榜样去收集数据,存储在 /var/log/sa 目次中的一个指定的二进制文件中。然后,在天天晚上的 23:53, sa2 法度榜样运行来创建一个每日汇总。

    筹划小贴士

    我在 crontab 文件中设置的有些时光看上起似乎是随机的,在某种程度上说,确切是如许的。测验测验去安排 cron 功课可能是件很具有挑衅性的事, 尤其是功课的数量越来越多时。我平日在我的每个电脑上仅有一些义务,它比起我工感化的那些临盆和实验情况中的电脑简零丁了。

    限制非 root 用户去拜访 cron 功能是异常重要的。然而,在一些间谍作况下,用户须要去设置一个义务在预先指准时光运行,而 cron 可以许可他们去那样做。很多用户不睬解若何精确地设备 cron 去完成义务,并且他们会掉足。这些缺点可能是无害的,然则,往往不是如许的,它们可能导致问题。经由过程设置功能策略,应用户与治理员互相合营,可以使个其余 cron 功课尽可能地不干扰其它的用户和体系功能。

    我治理的一个体系有 12 个天天晚上都运行 cron 功课,别的 3、4 个在周末或月初运行。那真是个挑衅,因为,如不雅有太多功课袈溱同一时光运行,尤其是备份和编译体系,会耗尽内存并且几乎填满交换文件空间,这会导致体系机能降低甚至是超负荷,最终什么工作都完不成。我增长了一些内存并改进了若何筹划义务。我还删除了一些写的很糟糕、应用大年夜量内存的义务。

    crond 办事假设主机计算机 24 小时运行。那意味着如不雅在一个筹划运行的时代封闭计算机,这些筹划的义务将不再运行,直到它们筹划的下一次运行时光。如不雅这里有关键的 cron 功课,这可能导致出现问题。 荣幸的是,在按期运行的功课上,还有一个其它的选择: anacron。

    anacron

    anacron 法度榜样履行和 cron 一样的功能,然则它增长了运行被跳过的功课的才能,比如,如不雅计算机已经封闭或者其它的原因导致无法在一个或多个周期中运行功课。它对标记本电脑或其它被封闭或进行睡眠模式的电脑来说是异常有效的。

    只要电脑一打开并引导成功,anacron 会检查以前是否有筹划的功课被错过。如不雅有,这些功课将急速运行,然则,仅运行一次(而不管它错过了若干次轮回运行)。例如,如不雅一个每周运行的功课袈溱比来三周因为休假而体系封闭都没有运行,它将在你的电脑一启动就急速运行,然则,它仅运行一次,而不是三次。

    anacron 法度榜样供给了一些对周期性筹划义务很好用的选项。它是安装在你的 /etc/cron.[hourly|daily|weekly|monthly] 目次下的脚本。 根据它们须要的频率去运行。


      推荐阅读

      详解全球最快的十台超算 首位没有悬念

    Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 前段时光全球超算TOP 500最新>>>详细阅读


    本文标题:在Linux中怎么使用cron计划任务

    地址:http://www.17bianji.com/lsqh/39172.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)