linux定时任务调度crontab

概述:

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

任务调度分类:

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

基本语法

crontab [选项]

常用选项:

  • -e  : 编辑crontab定时任务
  • -l   : 查询列出定时任务
  • -r   : 删除当前用户所有的crontab定时任务

举例说明:

在linux的命令界面输入:crontab -e      该命令会打开vim,我们在该界面中编写我们要执行的定时任务  * * * * * /要执行的命令或脚本

编写完定时任务后保存退出,这样一个定时任务就创建完毕了。

参数细节说明:

定时任务是以5个占位符 * 分别代表不同的时间点来执行后面的任务

1.五个占位符

  • 第一个 *  : 表示一个小时中的第几分钟
  • 第二个 *  :   表示一天当中的第几个小时
  • 第三个 *  :表示一个月当中的第几天
  • 第四个 *  : 表示一年当中的第几个月
  • 第五个 *  : 表示一周当中的星期几(注意:0和7都代表星期日)

2.特殊符号

    1.  * :代表任何时间。比如第一个 * 就一个小时的每分钟都执行一次的意思

    2. ,:代表不连续的时间。比如 “0 8,12,16 * * *” 命令,就代表在每天的8点0分,12点0分,16点0分都执行一次命令

    3. -  :代表连续的时间范围。比如 “0 5 * * 1-6” 命令,表示在每周一到周六的凌晨五点0分都执行一次命令

    4. */n : 代表每隔多久执行一次,比如 “*/10 * * * *” 命令,表示每隔10分钟就执行一遍命令

3.特定时间执行命令

    45 22 * * * 命令:在每天的22点45分执行一次命令

    0 17 * * 1 命令 :在每周一的17点0分执行一次命令

    0 5 1,15 * * 命令:在每个月的1号和15号凌晨5点0分执行一次命令

    40 4 * * 1-5 命令:在每周一到周五凌晨4点40分执行一次命令

    */10 4 * * * 命令 :在每天的凌晨4点,每隔10分钟执行一次命令

    0 0 1,15 * 1 命令:在每月的1号和15号,每周1的0点0分执行一次命令。

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

定时任务案例:

任务1.每个10分钟,向/home/test.txt文件中添加一个字符串hello  (不使用脚本,因为该任务较为简单,可以不用编写脚本)

        ①.直接输入命令crontab -e 打开定时任务编辑

        ②.写入定时任务:*/10 * * * * /bin/echo "hello" >> /home/test.txt

任务2.每隔10分钟,将当前日历追加到/home/mycal文件中(以脚本的方式编写)

步骤:

        ①.先编写一个脚本文件  /home/mytask.sh

        ②.用vim打开该文件,在该文件中编写脚本:cal >> /home/mycal

        ③.给mytask.sh脚本一个可执行权限,因为必须要有可执行权限,定时任务才能调度该脚本

            chmod 744 /home/mytask.sh

        ④.编写定时任务:crontab -e 打开编辑界面后编辑定时任务:*/10 * * * * /home/mytask.sh

        ⑤.成功

 

你可能感兴趣的:(Linux)