当前位置: 代码迷 >> 综合 >> 第十章 计划任务
  详细解决方案

第十章 计划任务

热度:27   发布时间:2024-02-09 06:40:30.0

简介:

  计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。

分类:1.一次性调度执行 at  2.循环调度执行

一、一次性调度执行at

   语法: at <TIMESPEC>

   <TIMESPEC>示例:

             Now +5min ---5分钟后

             Teatime  tomorrow(teatime is 16:00)   -- 下午茶时间

             Noon  +4days   ---第四天中午

             5pm  august 3  2029   --2020年8月3日下午5点

             4:00  2019-11-27      --某年某月某日某时

      例子:

  1.   设置一个定时创建用户的任务

   [root@localhost ~]# at  now   +1min

at> useradd uuuu

    2.查询任务

      [root@localhost ~]# atq

        3 Thu Mar 30 09:55:00 2019 a root

    3.验证结果

      [root@localhost ~]# id uuuu

    4.报错

 

二、循环调度执行cron

    1.简介:

      cron的概念和crontab是不可分割的

      crontab是一个命令,常见于Uninx和Linux的操作系统之中。

      用于设置周期性被执行的指令。

      该命令从标准输入设备读取指令,并将其存放于“/etc/crontab”文件中。

   2.查看进程状态

       [root@qianfeng ~]# systemctl status crond.service

[root@qianfeng ~]# ps aux |grep crond

root 550 0.0 0.0 126300 1648 ? Ss 10:05 0:00 /usr/sbin/crond -n

  cron程序运行时计划任务执行的根本

3.cron示例:

  I:管理方式

        (1)创建计划

            “crontab  -e”---为当前用户编辑工作

         (2)查询计划

           “crontab -l” --为当前用户列出所有工作

         (3)删除计划

          “crontab -r” --为当前用户移除所有的工作

   II:计划任务存储位置

          [root@localhost ~]# ls /var/spool/cron/

    III:语法格式Job format

            # .---------------- minute (0 - 59)

            # | .------------- hour (0 - 23)

            # | | .---------- day of month (1 - 31)

            # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

            # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

            # | | | | |  

            # * * * * * command

         说明: 分  时  日  月  周  --命令或脚本程序

 六个部分用空格隔开

 示例:

   0 * * * * /mysql_back.sh          ---每小时的0分执行

    */5 * * * * /mysql_back.sh        --每5分钟执行

    0 2 1,4,6 * * /mysql_back.sh     --每月的1.4.6日的2点整执行

   0 2 5-9 * * /mysql_back.sh      --*每月5日到9日的两点整执行

* * * * * /mysql_back.sh        ---每分钟执行

0 2 * * * /mysql_back.sh       ---每天 2点整执行

0 2 14 * * /mysql_back.sh      ---每月14号的2点整执行

0 2 14 2 * /mysql_back.sh      ---2月14日2点整执行

0 2 * * 5 /mysql_back.sh       ---不写月日,仅周生效;每月的周五,两点执行

0 2 2 6 5 /mysql_back.sh     --书写月和日,月或日,月日周均生效;6月2日的两点整执行;6月的周五两点整执行