crontab 每 16 分钟运行一次 的执行计划?

我一直以为 crontab */16 * * * * 是从加入执行计划时间开始,每16分钟运行一次。

今天因为其他原因记录了一下日志,才发现原来不是我想的那样。。。

图片描述

如图,忽略标红的内容,实际执行计划其实是每小时的 0分,16分,32分,48分执行的。。。

于是我特意在http://tool.lu/crontab/测试了一下,执行计划确实如上图所示。

我又做了如下测试 > 0 */13 * * *

图片描述

那么问题来了。。我就是想精确地 每 16 分钟运行一次 ,该怎么搞?

阅读 8.3k
5 个回答

可以用15条crontab做到: 16分和60分的最小公倍数是240

crontab任务如果是以每几分钟执行的话,那么下一小时开始就是下一小时的0

写脚本实现吧,crontab实现不了。

crontab应该实现不了这种需求

0,16,32,48 0,4,8,12,16,20 * * *
4,20,36,52 1,5,9,13,17,21 * * *
8,24,40,56 2,6,10,14,18,22 * * *
12,28,44 3,7,11,15,19,23 * * *

或者

cron.sh

step=960
for (( i=0;i<14400;i=(i+$step) )); do
    do something &
    sleep $step
done

crontab -e

* */4 * * * sh cron.sh
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏