定时任务调度:指每隔指定的时间,执行特定的命令或程序(脚本)

任务调度命令:

crontab

-e 编辑定时任务
-l 查询定时任务
-r 删除定时任务

例.创建一个定时任务,将etc目录下面的文件列表查询出来,追加到/tmp/etc.txt文件中,并每分钟执行1次。
    */1 * * * * ls -l /etc/ > /tmp/etc.txt

    占位符含义
    第一个 “*” 一个小时当中的第几分钟 0-59
    第二个 “*” 一天当中的第几个小时 0-23
    第三个 “*” 一个月当中的第几天 1-31
    第四个 “*” 一年当中的第几个月 1-12
    第五个 “*” 一周当中的星期几 0-7(0和7都代表星期日)

    特殊符号
    *  代表任何时间,比如第一个“*”就代表1小时中每分钟都执行1次的意思。
    , 代表不连续的时间,比如“0 8,12,16 * * *”就代表1天中的8点过0分,12点过0分,16点过0分都会执行1次。
    -  代表连续的世间范围,比如“0 5 * * 1-6”就代表星期1到星期6的凌晨5点过0分都会执行。
    */n  代表每隔多久执行1次。比如“*/10 * * * *” 就代表每隔10分钟就执行1次命令。

    注:service crond restart [重启任务调度]

at

机制介绍:
    1. at命令是一次性定时执行任务计划,at的守护线程atd以后台的模式运行,检查作业队列来运行。
    2. 默认情况下,atd守护线程每60秒检查作业队列,有作业时会检查作业运行时间,如果时间与当前
    时间匹配,则运行此作业。
    3. at命令是一次性定制的计划任务,执行完一个任务后就不再执行此任务了。
    4. 在使用at命令的时候,一定要保证atd进程的启动,可以用相关指令来查看
    ps -ef | grep atd

时间定义:
    HH:MM
        当天 HH:MM 执行,若当天时间已过,则在明天 HH:MM 执行
        当天 4:00 (若超时则为明天 4:00): 4:00
    英文粗略时间单次
        midnight(午夜,00:00)、noon(中午,12:00)、teatime(下午茶时间,16:00) tomorrow(明天)
        midnight、noon、teatime
    英文月名 A 日期B [年份C]
        C年A月B日执行
        在 2018 年 1 月 15 日执行:January 15 2018
    日期时间戳形式
        绝对计时法  时间+日期
        时间:HH:MM
        日期:MMDDYY或MM/DD/YY或MM.DD.YY
        在 2018 年 1 月 15 日执行:011518或01/15/18或01.15.18
    now + 数量 单位
        相对计时法
        以 minutes、hours、days 或 weeks 为单位
        5 天后的此时此刻执行:now + 5 days
参数
-m 当前任务执行后,向用户发送邮件
-l(=atq) 列出当前用户任务队列
-d(=atrm) 删除at任务
-v 显示任务将被执行时间
-c 输出任务内容
-V 显示版本信息
-f <文件> 从指定文件读入,而不是标准输入
-t <时间参数> 以时间参数的形式提交要运行的任务,时间参数MMDDhhmm(月日时分)

语法格式
at [选项] [时间]
at > 命令(输入两次 Ctrl + D)