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

2013-07-16 13:42:03 +08:00
 wcp1231
我第一次接触Crontab,不太了解。今天看到别人写的一段Crontab的配置,觉得好奇怪。。
配置是这样的:

0 8/23 * * * command

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

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


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

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

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

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

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

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

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

我开始怀疑是别人写错了。。
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
2013-07-16 15:39:13 +08:00
@binux 这个只是说可以用 range , 不是一定要用吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/75961

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX