zoukankan      html  css  js  c++  java
  • Linux中Cron任务间隔执行:每隔几分钟/几小时/几天

    一、配置

      1)全局用户配置文件(/etc/crontab)

      直接VI等编辑就可以。

      2)个人用户配置(临时配置)

      

      加任务:
        crontab -e
        0 */1 * * * command
        0 */2 * * * command
      查询任务是否加了:
        crontab -l
        0 */1 * * * command
        0 */2 * * * command 

    二、配置格式

    *   *  *  *  *  command
    分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令
    第1列表示分钟1~59 每分钟用*或者 */1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令

    相关参数详细说明:

    星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
    整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。
    用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。

    正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer> 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。

    开头为井号(#)的行是注释,不会被处理。

    三、配置实例
    #每隔1个小时执行一次 ls

    0 */1 * * * ls 

     

    #每隔2个小时执行一次 ls 

    0 */2 * * * ls 

     

    #每隔3个小时执行一次 ls 

    0 */3 * * * ls 

     

    #每隔4个小时执行一次 ls 

    0 */4 * * * ls

      

    #每隔10天执行一次 ls 

    0 0 */10 * * ls

    #每天1点执行 ls 

    0 1 * * * ls

    出处:https://blog.csdn.net/hot_vc/article/details/48261195

    ===================================================================

    cron 表达式 1小时30分钟,(90分钟或100分钟)执行一次

    注:不涉及日历(不指定某月天(周几)等),比如定时任务的需求:间隔 多少秒/分/时( 每隔99秒,每隔100分钟执行等)

    每隔90分钟执行一次 
        90*2= 180 = 3个小时
       需要添加2个cron,间隔3小时

    表达式:
    cron1 0 30 1/3 * * ?   (1.30,4.30,7.30,,,,)
    cron2 0 0  0/3 * * ?   (3.00,6.00,9.00,,,,)

    每隔100分钟

        100*3= 300 = 5个小时 
        需要添加3个cron,间隔5小时;

    cron1 0 40 1/5 * * ?   (1.40,6.40,11.40,,,)
    cron2 0 20 3/5 * * ?   (3.20,8.20,13.20,,,,)
    cron2 0 0  5/5 * * ?   (5.00,10.00,15.00)

    每隔2个半小时执行一次 
        150*2= 300 = 5个小时
       需要添加2个cron,间隔5小时

    表达式:
    cron1 0 30 2/5 * * ?   (2.30,7.30,12.30,,,,)
    cron2 0 0  0/5 * * ?   (5.00,10.00,15.00,,,,)

    受其他博文启发,一个定时任务实现不了,那这个任务,就添加多个触发时间,来实现;

    需求1:从0点开始,每隔2个半小时,执行一次
    思路记录:
     1.先列出,我们预期的执行时间:

           2.30,5.00,7.30,10.00,12.30,15:00

    2.找规律:我们知道间隔 整数(1,2,3,,,)个小时的cron表达式;根据此前提,找间隔 整数个小时 时间的规律

    3.规律结果

    (2.30,7.30,12.30,,,,)       两点半开始,间隔5小时    那么此表达式==>0 30 2/5 * * ?

    (5.00,10.00,15.00,,,,)      0点开始,间隔5小时        那么此表达式==> 0  0/5 * * ?

    需求2:在指定时间t后,启动定时任务a,

          可以采用:.再添加一个执行定时任务,动态添加那要求任务a,在那指定的时间t开始执行一次,有且只调用一次

    总结:间隔 n 个小时,执行一次

                  1.找出n和60的最小公倍数:gbs;

                  2.gbs除60=间隔时间tt       (tt<23?)

                 3.gbs除n=cron表达式个数

    附加表达式在线测试网站:  http://cron.qqe2.com/

    注意:粘贴我们自己写的表达cron表达式,查看运行结果时,得核对一下表达式是否被修改;我就遇到  0/3 变===>0-3


    原文链接:https://blog.csdn.net/weixin_38981413/java/article/details/103755671

    ===

  • 相关阅读:
    linux 经常使用网络命令
    ExtJS学习--------Ext.Element中其它操作方法学习
    对“使用MyEclipse,写的jsp代码因有汉字而无法保存”问题的解决
    SQL之case when then用法
    SQL之CASE WHEN用法详解[1]
    [SQL case when的两种用法]
    在delphi中生成GUID
    在delphi中生成GUID/自动获取临时表名......
    Delphi中Owner和Parent的区别
    Delphi处理数据网格DBGrid的编辑框 获取还没有提交到数据集的字段文本
  • 原文地址:https://www.cnblogs.com/mq0036/p/12930998.html
Copyright © 2011-2022 走看看