• 18 定时任务


    crond计划任务

    你可以把定时任务理解为一个闹钟。

    #Crontab表达式
    *  *  *  *  *
    分 时 日 月 周
    
    每天的凌晨2点   02:00     00 02 * * *
    每月执行一次    00  00  01  * *
    每个月的一号零点零时零分同时这一天时星期六 00  00  01  *  6
    

    系统级别的计划任务

    1、/etc/crontab
    
    2、如下的目录
        /etc/cron.hourly/ # 系统定时任务每个⼩时运⾏这个⽬录⾥的内容
        /etc/cron.daily/ # 系统定时任务每天运⾏这个⽬录⾥的内容
        /etc/cron.weekly/ # 系统定时任务每周运⾏这个⽬录⾥的内容
        /etc/cron.monthly/ # 系统定时任务每⽉运⾏这个⽬录⾥的内容
    

    用户级别的计划任务

    crontab -e
    
    -e : 编辑计划任务
    -l : 查看计划任务
    
    # 注:用户级别的计划任务存放在/var/spool/cron/,不同的用户存放的计划任务是以其自己的名字命名的脚本
    

    crontab语法

    * 表示任意的(分、时、⽇、⽉、周)时间都执⾏
    - 表示⼀个时间范围段, 如5-7点
    , 表示分隔时段, 如6,0,4表示周六、⽇、四
    /1 表示每隔n单位时间, 如*/10 每10分钟
    
    #案例
    
    # 1 3 5
    00 00 1,3,5 * *
    
    # 1到5号
    00 00 1-5
    
    # 每几分钟,每几个小数,每几天
    0/2  /2 
    00 0/2    00 /2
    00 00 0/2   00 00 /2
    

    定时任务编写思路

    1.⼿动执⾏命令,然后保留执⾏成功的结果。
    
    2.编写脚本
    脚本需要统⼀路径/scripts 脚本内容复制执⾏成功的命令(减少每个环节出错⼏率)
    
    3.执⾏脚本
    使⽤bash命令执⾏, 防⽌脚本没有增加执⾏权限(/usr/bin/bash /bin/bash) 执⾏脚本成功后,复制该执⾏的命令,以便写⼊cron
    
    4.编写定时任务
    加上必要的注释信息, ⼈、时间、任务
    设定定时任务执⾏的周期
    粘贴执⾏脚本的命令(不要⼿敲)
    
    5.调试定时任务
    增加任务频率测试
    检查环境变量问题(最好在脚本中重新定义环境变量PATH)
    检查crond服务⽇志
    

    总结

    1.定时任务规则之前加注释
    
    2.使⽤脚本执⾏定时任务(只有⼀条简单命令的可以直接使⽤命令执⾏)
    
    3.运⾏脚本⼀定要⽤绝对路径执⾏,统⼀脚本位置。
    
    4.定时任务中date命令的百分号需转义才能使⽤。
    
    5.命令或脚本结果(正确及错误)定向到空(>/dev/null 2>&1)或追加到⽂件中 >>/tmp/oldboy.txt 2>&1
    
    6.避免不必要的程序及命令输出,如打包命令,tar -v的显示过程的选项。
    
    7.打包压缩使⽤相对路径(切到⽬标⽬录的上⼀级打包⽬标)
    
    8.定时任务脚本中的程序⽂件 ,尽量⽤绝对路径,⽤户的定时任务中的⽂件默认存放在当前⽤户的家⽬录
    
    9.系统与命令位置有关的环境变量问题,建议脚本中重新定义环境变量PATH。
    

    习题

    #每天的凌晨2点整执⾏
    00 02 * * *
    
    #每⽉的1⽇的凌晨2点整执⾏
    00 02 1 * *
    
    #每年的2⽉14⽇凌晨2点执⾏
    00 02 14 02 *
    
    #每周天的凌晨2点整执⾏
    00 02 * * 0
    
    #每年的6⽉周五凌晨2点执⾏
    00 02 * 6 5
    
    #每⽉14⽇或每周⽇的凌晨2点都执⾏
    00 02 14 * 7
    
    #每年的2⽉14⽇或每年2⽉的周天的凌晨2点执⾏
    00 02 14 02 7
    
    #每天凌晨2点,每隔10分钟执⾏⼀次
    0/10 02 * * *
    
    #每分钟都执⾏
    * * * * *
    
    #每年2⽉14⽇的凌晨执⾏命令
    00 00 14 2 *
    
    #每隔5分钟执⾏⼀次
    00/5 * * * *
    
    #每年的1⽉5⽉8⽉凌晨2点执⾏
    00 02 * 1,5,8 *
    
    #每⽉1号到8号凌晨2点执⾏
    00 02 1-8 * *
    
    #每天晚上21:00执⾏
    00 21 * * *
    
    #每⽉1、10、22⽇的4:45执⾏
    45 04 1,10,22 * *
    
    #每⽉1到10⽇的4:45执⾏
    45 04 1-10 * *
    
    #每隔两天的上午8点到11点的第3和第15分钟执⾏
    3,15 8-11 0/2 * *
    
    #晚上11点到早上7点之间,每隔两⼩时执⾏
    * 23-7/2 * * *
    
    #周⼀到周五每天晚上21:15执⾏
    15 21 * * 1-5 
    
  • 相关阅读:
    git基础教程(三)
    Struts2_day04
    Struts2_day03
    Struts2_day02
    Struts2_day01
    Spring 学习02
    Spring 学习01
    Kafka 温故(五):Kafka的消费编程模型
    Kafka 温故(四):Kafka的安装
    Kafka 温故(三):Kafka的内部机制深入(持久化,分布式,通讯协议)
  • 原文地址:https://www.cnblogs.com/zhaokunhao/p/14597867.html
Copyright © 2020-2023  润新知