• Linux定时任务配置


    一、创建一个任务文件

    Linux系统
    1、命令行输入crontab -e会自动打开一个空文件:

    # crontab -e
    
    • 1

    2、输入a或者i可以进入编辑状态,可输入任务代码。代码格式可以进入/etc/crontab查看

    # cd /etc
    # cat crontab
    
    • 1
    • 2

    在这里插入图片描述
    minute: 表示分钟,可以是从0到59之间的任何整数。
    hour:表示小时,可以是从0到23之间的任何整数。
    day:表示日期,可以是从1到31之间的任何整数。
    month:表示月份,可以是从1到12之间的任何整数。
    week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
    command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

    2.特殊字符:

    星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。

    逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。

    中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。

    正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

    3.实例

    运行crontab –e 编写一条定时任务 */5 * * * * /home/test.sh 在每5分钟执行一次test.sh脚本。

    ##每月每天凌晨3点30分和中午12点20分执行test.sh脚本
     
    30 3,12 * * *  /home/test.sh           
     
     
     
    ##每月每天每隔6小时的每30分钟执行test.sh脚本
     
    30 */6 * * *  /home/test.sh
     
    ##每月每天早上8点到下午18点每隔2小时的每30分钟执行test.sh脚本
    30 8-18/2 * * * /etc/init.d/network restart
     
     
     
    ##每月每天晚上21点30分执行test.sh脚本
     
    30 21 * * *  /etc/init.d/network restart
     
     
     
    ##每月1号、10号、22号凌晨4点45分执行test.sh脚本
     
    45 4 1,10,22 * * /etc/init.d/network restart
     
     
     
    ##8月份周一、周日凌晨1点10分执行test.sh脚本
     
    10 1 * 8 6,0 /etc/init.d/network restart
     
     
     
    ##每月每天每小时整点执行test.sh脚本
     
    00 */1 * * *  /etc/init.d/network restart
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    crontab文件的一些例子:
    1)30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每晚的21:30重启apache。
    2)45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每月1、10、22日的4 : 45重启apache。
    3)10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每周六、周日的1 : 10重启apache。
    4)0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。最后一次的任务执行时间为23:30
     
    5)0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每星期六的11 : 00 pm重启apache。
     
    6)* */1 * * * /usr/local/etc/rc.d/lighttpd restart
    每一小时重启apache(错误的)
    *代表每分钟就执行一次,上面的语句的意思为每隔一小时的每分钟都在执行重启apache
     
    */60 * * * * #每60分钟即每小时执行一次
    */105 * * * * #每105分钟执行一次
     
    7)* 23,00-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    二、保存文件

    先按Esc键,然后输入“:wq”

    三、查看文件

    保存成功的文件去哪里了呢?在/var/spool/cron/下面

    # cd /var/spool/cron
    # ls
    
    • 1
    • 2

    在这里插入图片描述
    这里可以看到一个root文件,因为我用的root账号登录,所以生成了一个root文件。

    通过cat命令可以看到这个文件的内容就是前面编辑的内容。

    定时任务书写要领

    要领1:定时任务要加注释
     
    要领2:定时任务命令或脚本结尾加 &>/dev/null 或 >/dev/null 2>&11>/dev/null 2>/dev/null
     
    要领3:定时任务执行shell脚本前加/bin/sh,定时任务执行shell脚本不必添加执行权限
     
    要领4:定时任务命令或程序尽量写到脚本里,定时任务只要执行脚本即可
     
             注意操作步骤:
     
      (1)、命令行执行
     
      (2)、编写脚本
     
      (3)、测试脚本
     
      (4)、设置定时任务
     
    要领5:生产任务程序不要随意打印输出信息
     
    要领6:定时任务执行的脚本要规范路径 (例如 /server/script)
     
    要领7:配置定时任务要规范操作过程
     
    要领8:定时任务执行特殊的字符需要进行转义,否则会报错,例如 百分号% 转义 \%
     
    要领9:定时任务脚本中如果涉及使用到环境变量,必须在脚本中重新定义,不然,定时任务识别不了
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    crontab在线校验工具地址crontab执行时间计算 - 在线工具
    crontab在线校验工具

  • 相关阅读:
    RGB(c++)
    大语言模型之十二 SentencePiece扩充LLama2中文词汇
    MQ - 08 基础篇_消费者客户端SDK设计(下)
    蚂蚁链牵头两项区块链国际标准在ITU成功立项
    2023-9-12 01背包问题
    Spring Batch -配置步骤 (XML/Java)
    Linux项目自动化构建工具-make/Makefile
    LeetCode第7题:整数反转
    Java 基于 SpringBoot 的简历招聘系统
    云栖大会“云计算加速开源创新论坛” 揭晓 2022 年度开源人物
  • 原文地址:https://blog.csdn.net/qq_41512902/article/details/125915446