我一直以为 crontab */16 * * * *
是从加入执行计划时间开始,每16分钟运行一次。
今天因为其他原因记录了一下日志,才发现原来不是我想的那样。。。
如图,忽略标红的内容,实际执行计划其实是每小时的 0分,16分,32分,48分执行的。。。
于是我特意在http://tool.lu/crontab/测试了一下,执行计划确实如上图所示。
我又做了如下测试 > 0 */13 * * *
那么问题来了。。我就是想精确地 每 16 分钟运行一次 ,该怎么搞?
我一直以为 crontab */16 * * * *
是从加入执行计划时间开始,每16分钟运行一次。
今天因为其他原因记录了一下日志,才发现原来不是我想的那样。。。
如图,忽略标红的内容,实际执行计划其实是每小时的 0分,16分,32分,48分执行的。。。
于是我特意在http://tool.lu/crontab/测试了一下,执行计划确实如上图所示。
我又做了如下测试 > 0 */13 * * *
那么问题来了。。我就是想精确地 每 16 分钟运行一次 ,该怎么搞?
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
6 回答2.8k 阅读
2 回答1.9k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.6k 阅读
4 回答2.1k 阅读
可以用15条crontab做到: 16分和60分的最小公倍数是240