zoukankan      html  css  js  c++  java
  • 任务被漏定时任务执行

    任务被漏定时任务执行

    2. anacron 的监测周期

    • anacron 会使用一天、七天、一个月作为监测周期。
    • 在系统的 /var/spool/anacron/ 目录中存在 cron.{daily,weekly,monthly} 文件,用于记录上次执行 cron 的时间。
    • 将记录的时间与当前时间作比较,若两个时间差超过了 anacron 的指定时间差值,证明有cron任务被漏执行。

    3. /etc/anacrontab 文件

    [vagrant/etc] ]$cat /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

    对比 /etc/crontab

    返回查看 /etc/crontab 文件中有这样一段:

    25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
    47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
    52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
    • test -x

      test -x /usr/sbin/anacron 表示 “检测文件 /usr/sbin/anacron 是否存在且具有“可执行”权限”

      若 test -x /usr/sbin/anacron 为 true,则不执行 || 后面的命令,若为 false,则执行 || 后面的命令。

      即,判断系统是否安装了 anacron , 若安装了,则忽略 /etc/crontab 中的这三条定时任务,改为使用 /etc/anacrontab 中的配置。

    • run-parts --report

      遍历目标文件夹,执行第一层目录下具有可执行权限的文件。

    /etc/anacrontab 计划任务格式

    天数延迟时间(分)工作名称实际执行的命令
    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

     

     

    以 cron.daily 为例说明 anacron 执行过程

    1. 从 /etc/anacrontab 分析到 cron.daily 的天数为 1 天。
    2. 从 /var/spool/anacron/cron.daily 中获取最后一次执行 anacron 的时间。
    3. 将上面获取的时间与当前时间做对比,若相差时间为1天以上(含一天),就准备执行 cron.daily
    4. 根据 /etc/anacrontab 的设置,将延迟5分钟执行 cron.daily。
    5. 5分钟后,开始执行 run-parts --report /etc/cron.daily 命令,即执行 /etc/cron.daily目录下的所有可执行文件。
  • 相关阅读:
    QSPI
    温度标准
    minigui占用空间的情况
    引导页的展示
    Xcode6.0以后SVN的配置
    【转】iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
    SDWebImage最新使用
    OC设计模式
    Objective-c的@property 详解
    iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/11764952.html
Copyright © 2011-2022 走看看