代码之家  ›  专栏  ›  技术社区  ›  levik

在crontab中指定“所有奇数值”?

  •  82
  • levik  · 技术社区  · 17 年前

    在crontab中,我可以使用星号表示每个值,或使用“*/2”表示每个偶数值。

    是否有方法指定每个 古怪的 价值?(像“1+*/2”这样的东西有效吗?)

    6 回复  |  直到 17 年前
        1
  •  84
  •   zigdon    17 年前

    根据你的cron版本,你应该能够做到(比如说几个小时):

       1-23/2
    

    请参阅crontab(5)手册页中的EXTENSIONS部分:

       Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".
    

    为了获得更便携的解决方案,我怀疑你只需要使用简单的列表:

       1,3,5,7,9,11,13,15,17,19,21,23
    

    但是,将命令包装在shell脚本中可能更容易,如果在奇怪的一分钟内没有调用,该脚本将立即退出。

        2
  •  57
  •   grigb    10 年前

    每一分钟都会是:

    1-59/2 * * * * 
    

    每一分钟都是:

    0-58/2 * * * * 
    
        3
  •  2
  •   Paul Tomblin    17 年前

    我意识到这已经快10年了,但我很难在每两个小时的奇数小时工作中得到1-23/2。

    对于所有用户, 准确的 不需要奇数小时精度。我做了以下适合我的团队需要的事情。

    59 */2 * * *
    

    每两小时执行一次作业,即第59分钟。

        4
  •  1
  •   erlando    17 年前

    尝试

    1-23/2
    

    根据你的问题,我假设是Vixie Cron。我怀疑这将适用于任何其他cron。

        5
  •  0
  •   j0k gauthamp    13 年前

    当我阅读手册“1-23/2”(持续数小时)时,就会奏效。