“每天一命令之crontab”的版本间的差异
跳到导航
跳到搜索
第29行: | 第29行: | ||
=N小时执行一次= | =N小时执行一次= | ||
<pre> | <pre> | ||
+ | |||
+ | Note | ||
+ | 真正的每隔一小时、每隔105分钟执行的定时任务应该如何写呢?如下: | ||
+ | |||
+ | */60 * * * * #每60分钟即每小时执行一次 | ||
+ | */105 * * * * #每105分钟执行一次 | ||
+ | |||
这种也是错误的写法,这种能充分展示前面一小时执行一次带来的迷惑感,这种写法其实是每整3小时的0分执行一次。也就是说,它会在每天的3点、9点、12点...等3的整数倍时间点来执行,并不是真正意义上每隔3个小时执行 | 这种也是错误的写法,这种能充分展示前面一小时执行一次带来的迷惑感,这种写法其实是每整3小时的0分执行一次。也就是说,它会在每天的3点、9点、12点...等3的整数倍时间点来执行,并不是真正意义上每隔3个小时执行 | ||
第38行: | 第45行: | ||
#半小时执行一次 | #半小时执行一次 | ||
0 0/30 * * * | 0 0/30 * * * | ||
+ | |||
+ | |||
+ | |||
</pre> | </pre> | ||
2020年6月24日 (三) 02:10的版本
秒级定时任务
#5s 执行一次 * * * * * /usr/bin/curl http://www.test.com * * * * * sleep 5; /usr/bin/curl http://www.test.com * * * * * sleep 10; /usr/bin/curl http://www.test.com * * * * * sleep 15; /usr/bin/curl http://www.test.com * * * * * sleep 20; /usr/bin/curl http://www.test.com * * * * * sleep 25; /usr/bin/curl http://www.test.com * * * * * sleep 30; /usr/bin/curl http://www.test.com * * * * * sleep 35; /usr/bin/curl http://www.test.com * * * * * sleep 40; /usr/bin/curl http://www.test.com * * * * * sleep 45; /usr/bin/curl http://www.test.com * * * * * sleep 50; /usr/bin/curl http://www.test.com * * * * * sleep 55; /usr/bin/curl http://www.test.com 这样写就实现了每10秒执行一次,用了5个计划任务。如果要实现每5秒,甚至是每1秒执行一次,就要写59行计划任务了,显然太繁琐,可以用一个脚本的方式实现: #!/bin/bash step=1 #间隔的秒数,不能大于60 for ((i=0;i<60;i=(i+step)));do $(date>>/mnt/file) #here you command sleep $step done exit 0
N小时执行一次
Note 真正的每隔一小时、每隔105分钟执行的定时任务应该如何写呢?如下: */60 * * * * #每60分钟即每小时执行一次 */105 * * * * #每105分钟执行一次 这种也是错误的写法,这种能充分展示前面一小时执行一次带来的迷惑感,这种写法其实是每整3小时的0分执行一次。也就是说,它会在每天的3点、9点、12点...等3的整数倍时间点来执行,并不是真正意义上每隔3个小时执行 0 */3 * * * /script.sh #每3小时执行一次 #半小时执行一次 0 0/30 * * *
知识点
man 5 crontab field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 1-31 month 1-12 (or names, see below) day of week 0-7 (0 or 7 is Sun, or use names)