概念:

  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. 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz

    1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...

  2. 更新程序基于IIS

    闲着无聊写了个更新程序; 1.支持多种文件格式 2.支持按版本号/文件大小/文件时间进行判断更新 3.支持多级文件目录创建

  3. Python体验(10)-图形界面之计算器

    import wx class Form(wx.Frame): def __init__( self, parent, id, title ): wx.Frame.__init__(self,pare ...

  4. qt环境下Mapx组建的编程---------regoin

    #include "widget.h" #include "ui_widget.h" #include <QPushButton> #include ...

  5. 关于Jquery中ajax介绍

    jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XMLHttpRequest 对象.大多数情况下你无需直接操作该函数,除非你需 ...

  6. scrollbar_test

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. Generate transparent shape on image

    Here is an example code to generate transparent shape on image. Need to pay attention can not use cv ...

  8. Spark Streaming消费Kafka Direct方式数据零丢失实现

    使用场景 Spark Streaming实时消费kafka数据的时候,程序停止或者Kafka节点挂掉会导致数据丢失,Spark Streaming也没有设置CheckPoint(据说比较鸡肋,虽然可以 ...

  9. 前端---DOM

    一.介绍: http://www.cnblogs.com/wupeiqi/articles/5643298.html 什么是DOM? DOM字面意思是文档对象模型,DOM将网页内的元素与内容呈现为一个 ...

  10. 如何优化cocos2d程序的内存使用和程序大小

    在我完成第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰".而我刚开始接触cocos2d的时候,社区里面的人 ...