V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wcp1231
V2EX  ›  程序员

一段奇怪的Crontab时间配置,大家帮忙看看

  •  
  •   wcp1231 ·
    wcp1231 · 2013-07-16 13:42:03 +08:00 · 3797 次点击
    这是一个创建于 4167 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我第一次接触Crontab,不太了解。今天看到别人写的一段Crontab的配置,觉得好奇怪。。
    配置是这样的:

    0 8/23 * * * command

    我看的教程只有 */n 这样,代表每n个单位。这个 8/23 是啥意思?每天8点或每23小时?不会是写错了的配置吧?
    谢谢~
    10 条回复    1970-01-01 08:00:00 +08:00
    terry
        1
    terry  
       2013-07-16 13:52:15 +08:00
    每天8点或者23点应该是 8,23

    在 Hour 位上 8/23 应该是每当8点,每隔23小时执行一次 command 确实很奇怪。不知道是不是理解有误... 真是这样每天不就得了,写这么坑爹不是给人看的。
    andybest
        2
    andybest  
       2013-07-16 13:55:24 +08:00
    @terry 有没什么可以把cron的配置时间比如下一个月内的执行计划列出来的工具?可以测试一下正确性
    wcp1231
        3
    wcp1231  
    OP
       2013-07-16 14:06:59 +08:00
    @terry 我测试了 1/2 * * * * 只有每小时1分钟的时候才会执行。
    还有一个问题啊,*/10 * * * * 这样是每10分钟,是从我保存的时间开始算?还是10、20、30这样整的?


    @andybest 列出来是啥意思?像日历?
    ETiV
        4
    ETiV  
       2013-07-16 14:27:32 +08:00 via iPhone
    应该是「下次执行时间」、「下下次执行时间」、「下下下次执行时间」
    caoyue
        5
    caoyue  
       2013-07-16 14:35:43 +08:00   ❤️ 1
    "/" 表示 step ,前面的表示起始量,后面的表示偏移量

    crontab 和你保存的时间没有关系

    楼主的这个表达式看起来很奇怪……
    要么可能是 Quartz 的 Cron 表达式,那么意义就是每小时的 8、34、54 分执行任务,这样看起来正常一点
    terry
        6
    terry  
       2013-07-16 14:38:16 +08:00
    @wcp1231 1/2 * * * * 是每个小时的第一分钟执行,然后每隔开两分钟执行一次。

    */10 是每10分钟,至于什么时候开始第一次,还真不确定。想当然会认为是0开始,整十再执行。

    从未如此深入研究过 cron -_-z

    你可写一个简单的脚本输出 timestamp 确认一下;-)
    caoyue
        7
    caoyue  
       2013-07-16 14:56:37 +08:00
    @terry "/" 前面的 * 就等同于 0
    wcp1231
        8
    wcp1231  
    OP
       2013-07-16 15:05:27 +08:00
    @caoyue 8/23 是在小时的位置,所以非常奇怪。。

    @terry 我在Ubuntu12.10下写 1/2 结果只有每小时的第一分钟才会执行。。。

    我开始怀疑是别人写错了。。
    binux
        9
    binux  
       2013-07-16 15:24:48 +08:00
    应该是不标准的写法,根据man 5 crontab

    Step values can be used in conjunction with ranges. Following a range
    with ``/<number>'' specifies skips of the number's value through the
    range.

    step需要和range一起用,单个数字意义不明
    caoyue
        10
    caoyue  
       2013-07-16 15:39:13 +08:00
    @binux 这个只是说可以用 range , 不是一定要用吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5022 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:53 · PVG 15:53 · LAX 23:53 · JFK 02:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.