概念:

  1. Linux 工作排程的种类:at, cron

    • at 是个可以处理仅执行一次就结束排程的指令,不过要执行 at 时, 必须要有 atd 这个服务支持。
    • crontab 这个指令所设定的工作将会循环的一直进行下去! 可循环的时间为分钟、小时、每周、每月或每年等。crontab 除了可以使用指令执行外,亦可编辑 /etc/crontab 来支持。 至于让 crontab 可以生效的服务则是 crond 这个服务喔!
  2. Linux 上常见的例行性工作
    • 进行登录档的轮替 (log rotate):
    • 登录文件分析 logwatch 的任务
    • 建立 locate 的数据库:
    • whatis 数据库的建立
    • RPM 软件登录文件的建立:
    • 移除暂存档
    • 与网络服务有关的分析行为
  3. at 的运作方式
    • 事实上,我们使用 at 这个指令来产生所要运作的工作,并将这个工作以文本文件的方式写入 /var/spool/at/ 目录内,该工作便能等待 atd 这个服务的取用与执行了。
    • /etc/at.allow 与 /etc/at.deny 这两个档案来进行 at 的使用限制。先匹配允许的,没有就匹配拒绝如果两个档案都不存在,那么只有 root 可以使用 at 这个指令。
  4. 循环执行的例行性工作排程
    • 当用户使用 crontab 这个指令来建立工作排程以后,该项工作就会被记录到 /var/spool/cron/ 里面去了,而且是以账号来作为判别的喔!另外, cron 执行的每一项工作都会被记录到 /var/log/cron 这个登录档中,所以啰,如果你的 Linux 不知道有否被植入木马时,也可以搜寻一下 /var/log/cron 这个登录档呢!
    • /etc/cron.allow     /etc/cron.deny
  5. 系统的配置文件: /etc/crontab
    1. 01 * * * * root run-parts /etc/cron.hourly:

      • run-parts 一个 bash script 啦!如果你直接进入 /usr/bin/run-parts 去看看, 会发现这支指令会将后面接的『目录』内的所有档案捉出来执行!这也就是说『 如果你想让系统每小时主动帮你执行某个指令,将该指令写成 script,并将该档案放置到 /etc/cron.hourly/ 目录下即可』的意思!
    2. 一些注意事项
      • 资源分配不均的问题

        • 流量
        • 区域内其他 PC 的流量侦测
        • CPU 使用率
        • RAM 使用率
        • 在线人数实时侦测
        • 范例:[root@www ~]# vi /etc/crontab
          • 1,6,11,16,21,26,31,36,41,46,51,56 * * * * root CMD1
          • 2,7,12,17,22,27,32,37,42,47,52,57 * * * * root CMD2
          • 3,8,13,18,23,28,33,38,43,48,53,58 * * * * root CMD3
          • 4,9,14,19,24,29,34,39,44,49,54,59 * * * * root CMD4
          • 多个每五分钟执行一次的命令
      • 取消不要的输出项目
        • 直接以『命令重导向』将输出的结果输出到 /dev/null 这个垃圾桶当中就好了
      • 安全的检验
        • 很多时候被植入木马都是以例行命令的方式植入的,所以可以藉由检查 /var/log/cron 的内容来视察是否有『非您设定的 cron 被执行了?』这个时候就需要小心一点啰!
      • 周与日月不可同时并存
  6. 可唤醒停机期间的工作任务 -----------anacron
    1. anacron 并不能指定何时执行某项任务, 而是以天为单位或者是在开机后立刻进行 anacron 的动作,他会去侦测停机期间应该进行但是并没有进行的 crontab 任务,并将该任务执行一遍后,anacron 就会自动停止了。
    2. anacron 与 /etc/anacrontab
    3. anacron 并不需要额外的设定,使用默认值即可!只是我们的 CentOS 只有在开机时才会执行 anacron 就是了。
      1. chkconfig --list anacron -----检查是否开机执行

命令:

  1. atd 的启动与 at 运作的方式

    • /etc/init.d/atd restart  启动服务
    • chkconfig atd on 开机自动启动
    • at [-mldv] TIME  进入到一个shell环境
    • at -c 工作号码
      • -m :当 at 的工作完成后,即使没有输出讯息,亦以 email 通知使用者该工作已完成。
      • -l :at -l 相当于 atq,列出目前系统上面的所有该用户的 at 排程;
      • -d :at -d 相当于 atrm ,可以取消一个在 at 排程中的工作;
      • -v :可以使用较明显的时间格式栏出 at 排程中的任务栏表;
      • -c :可以列出后面接的该项工作的实际指令内容。
      • TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,
        • 格式有: HH:MM ex> 04:00

          • HH:MM YYYY-MM-DD ex> 04:00 2009-03-17
          • HH:MM[am|pm] [Month] [Date] ex> 04pm March 17
          • HH:MM[am|pm] + number [minutes|hours|days|weeks]ex> now + 5 minutes ex> 04pm + 3 days
    • at 工作的管理
      • atq ---------------------查询目前主机上面有多少的 at 工作排程?
      • atrm [jobnumber] -移除
    • batch:系统有空时才进行背景任务
      • batch 23:00 2009-3-17  也是用 at 的工作管理
  2. 循环执行的例行性工作排程
    • crontab [-u username] [-l|-e|-r]

      • -u :只有 root 才能进行这个任务,亦即帮其他使用者建立/移除 crontab 工作排程;
      • -e :编辑 crontab 的工作内容
      • -l :查阅 crontab 的工作内容
      • -r :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑。
  3. 可唤醒停机期间的工作任务 -----------anacron
    • anacron 与 /etc/anacrontab

      • anacron [-sfn] [job]..
      • anacron -u [job].
        • -s :开始一连续的执行各项工作 (job),会依据时间记录文件的数据判断是否进行;
        • -f :强制进行,而不去判断时间记录文件的时间戳;
        • -n :立刻进行未进行的任务,而不延迟 (delay) 等待时间;
        • -u :仅更新时间记录文件的时间戳,不进行任何工作。
        • job :由 /etc/anacrontab 定义的各项工作名称。
    • 范例:anacron 若下达『 anacron -s cron.daily 』时,他会这样运作的:
      • 由 /etc/anacrontab 分析到 cron.daily 这项工作名称的天数为 1 天;
      • 由 /var/spool/anacron/cron.daily 取出最近一次执行 anacron 的时间戳;
      • 由上个步骤与目前的时间比较,若差异天数为 1 天以上 (含 1 天),就准备进行指令;
      • 若准备进行指令,根据 /etc/anacrontab 的设定,将延迟 65 分钟
      • 延迟时间过后,开始执行后续指令,亦即『 run-parts /etc/cron.daily 』这串指令;
      • 执行完毕后, anacron 程序结束

linux crontab的更多相关文章

  1. Linux crontab 命令详解

    在 Linux 中,任务可以被配置在指定的时间段.指定的日期.或系统平均载量低于指定的数量时自动运行.红帽企业 Linux 预配置了对重要系统任务的运行,以便使系统能够时时被更新.譬如,被 locat ...

  2. linux crontab 实现每秒执行(转)

    linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执行动作,非常简单,就是把当前时间写入log ...

  3. Linux crontab 命令详解(含配置文件路径)

    编辑/etc/crontab 文件配置cron cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服 ...

  4. Linux crontab任务调度

    一.crontab说明 Linux crontab任务调度是在规定的时间频率内去执行相应的任务. 二.crontab文件详情 1.crontab文件在Linux中的/etc/crontab 2.查看c ...

  5. Linux Crontab及使用salt进行管理

    一.引言: 最近无意之间看到salt有一个cron的模块,今天就在这里介绍linux crontab以及通过salt的cron对crontab的管理. 二.Linux crontab的介绍: cron ...

  6. Linux crontab使用方法

    crontab命令主要用于设置命令行或者脚本周期性的执行.该命令从标准输入设备读取指令,并将其存放于文件中,以供之后读取和执行.本文主要讲述crontb命令的基本语法和配置方法. 1.crontab命 ...

  7. linux crontab 实现每秒执行的实例

    linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 原理:通过延时方法 sleep N  来实现每N秒执行. 创 ...

  8. Linux crontab 实现每秒执行

    Linux crontab 实现每秒执行 linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执 ...

  9. linux crontab 的使用

    linux crontab 的使用 准备(实验楼需要,实际环境不需要):sudo service rsyslog startsudo cron -f & crontab 使用添加任务:cron ...

  10. 【Python】Linux crontab定时任务配置方法(详解)

    CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在 ...

随机推荐

  1. [转]linux sort,uniq,cut,wc命令详解

    sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...

  2. jeecg 扩展封装查询条件 时间段查询

    使用jeecg框架开发的小伙伴们知道,添加查询条件,通常是我们加一个配置(query="true")就可以将该字段设置为查询条件.简单方便.但是这样的配置查询条件仅适用于输入框输入 ...

  3. MongoDB中insert方法、update方法、save方法简单对比

    MongoDB中insert方法.update方法.save方法简单对比 1.update方法 该方法用于更新数据,是对文档中的数据进行更新,改变则更新,没改变则不变. 2.insert方法 该方法用 ...

  4. ACM知识点

    基础算法 高精 模拟 分治 贪心 排序 DFS 迭代加深搜索 BFS 双向BFS 动态规划 DAG上DP 树上DP 线性DP 图算法 最短路 FLYD DJATL BF 最大流 Dinic ISAP ...

  5. LR12.53—第3课:重播Vuser脚本

    第3课:重播Vuser脚本 在前面的教训,你记录了一组典型的用户行为,并准备重播脚本. 重播脚本之前,您可以配置脚本的运行时设置,它定义了Vuser的行为. 注:记录与基于Web的协议的地方WebTo ...

  6. C# 计算两个字符串的相似度

    我们在做数据系统的时候,经常会用到模糊搜索,但是,数据库提供的模糊搜索并不具备按照相关度进行排序的功能. 现在提供一个比较两个字符串相似度的方法. 通过计算出两个字符串的相似度,就可以通过Linq在内 ...

  7. 【Python】pymongo使用

    官方文档:http://api.mongodb.com/python/current/index.html MongoReplicaSetClient:http://api.mongodb.com/p ...

  8. leetcode 190

    190. Reverse Bits Reverse bits of a given 32 bits unsigned integer. For example, given input 4326159 ...

  9. ReactJS学习笔记(三)

    需要注意的问题: 1.组件名称开头字母一定要大写.(PS:原因是 React 的 JSX 里约定分别使用首字母大.小写来区分本地组件的类和 HTML 标签.) 2.this.props.childre ...

  10. 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它

    解决方法是新建 全局应用程序类 Global.asax 在 Session_Start 函数中 添加 string sessionId = Session.SessionID; protected v ...