美文网首页
第 7 章、实操篇 crond 任务调度

第 7 章、实操篇 crond 任务调度

作者: 神奇作手 | 来源:发表于2019-10-14 16:57 被阅读0次

    1、原理示意图

    可在 crontab 中进行定时任务的设置。

    2、概述

    任务调度:是指系统在某个时间执行的特定的命令或程序。

    任务调度分类:

    • 1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
    • 2.个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。

    3、基本语法

    crontab [选项]

    3.1、常用选项

    参数 作用描述
    -e 编辑 crontab 任务
    -l 查询 crontab 任务
    -r 删除当前用户的所有 crontab 任务

    4、快速入门

    4.1、任务的要求

    设置任务调度文件:/etc/crontab
    设置个人任务调度。执行 crontab –e 命令。接着输入任务到调度文件
    如:*/1 * * * * ls –l /etc/ >> /tmp/to.txt
    意思说每小时的每分钟执行 ls –l /etc/ >> /tmp/to.txt 命令

    4.2、步骤如下

    1. cron -e
    2. */ 1 * * * * ls -l /etc >> /tmp/to.txt
    3. 当保存退出后就程序。
    4. 在每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt

    4.3、参数细节说明

    4.3.1、5个占位符说明
    位置 含义 范围
    第1个 “*” 一小时当中的第几分钟 0—59
    第2个 “*” 一天当中的第几小时 0—23
    第3个 “*” 一个月当中的第几天 1—31
    第4个 “*” 一年当中的第几月 1—12
    第5个 “*” 一周当中的星期几 0—7(0、7代表星期日)
    4.3.2、特殊符号的说明
    特殊符号                 含 义
    * 代表任何时间。比如第一个“*”就是代表一小时中每分钟都执行一次的意思;
    , 代表不连续的时间。比如“0 8,12,16 * * *”命令,代表在每天的8点0分,12点0分,16点0分执行一次;
    - 代表连续的时间范围;比如“0 5 * * 1-6”,代表在周一到周六的凌晨5点0分执行
    */n 代表每隔多久执行一次。比如“*/10 * * * *”,代表每隔10分钟执行一次
    4.3.3、特定时间执行任务案例
    时间 含 义
    35 22 * * * 在 22点 35分执行命令
    0 19 * * 1 每周 1的 19点 0分执行命令
    0 6 1,16 * * 每月的 1号和 16号的 6点 0分执行命令
    50 5 * * 1-5 每周 1到周 5的 5点 50分执行命令
    */10 3 * * * 每天的凌晨 3点,每隔 10分钟执行一次
    0 0 1,15 * 1 每月 1号和 15号,每周 1的 0点 0分都会执行命令。

    注意:星期几和几号最好不要同时出现,因为它们定义的都是天。非常容易让管理员混乱。

    4.4、任务调度应用实例

    4.4.1、案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
    1. 先编写一个文件 /home/mytask1.sh date >> /tmp/mydate
    2. 给 mytask1.sh 一个可以执行权限
      chmod 744 /home/mytask1.sh
    3. crontab -e
    4. */1 * * * * /home/mytask1.sh
    5. 成功
    4.4.2、案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal 文件中
    1. 先编写一个文件 /home/mytask2.sh
      date >> /tmp/mycal cal >> /tmp/mycal
    2. 给 mytask1.sh 一个可以执行权限
      chmod 744 /home/mytask2.sh
    3. crontab -e
    4. */1 * * * * /home/mytask2.sh
    5. 成功
    4.4.3、每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中 mydb.bak
    1. 先编写一个文件 /home/mytask3.sh
    /usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
    
    1. 给 mytask3.sh 一个可以执行权限
    chmod 744 /home/mytask3.sh
    
    1. crontab -e
    2. 0 2 * * * /home/mytask3.sh
    3. 成功

    5、crond 相关指令

    1. conrtab –r:终止任务调度。
    2. crontab –l:列出当前有那些任务调度
    3. service crond restart [重启任务调度]

    相关文章

      网友评论

          本文标题:第 7 章、实操篇 crond 任务调度

          本文链接:https://www.haomeiwen.com/subject/xhitmctx.html