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目录下的所有可执行文件。
  • 相关阅读:
    IE6下div遮盖select的最优解决方案
    jQuery一些常用特效方法使用实例
    你用什么工具开发JavaScript?
    抛弃jQuery 深入原生的JavaScript
    在JavaScript中实现yield,实用简洁实现方式。
    jquery复选框checkbox实现删除
    一系列JavaScript的基础工具
    jQuery一些常用特效方法使用实例
    JavaScript 文件上传类型判断
    Java大文件分片上传/多线程上传功能
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/11764952.html
Copyright © 2011-2022 走看看