最近看到一道题目,具体如下:
下列哪个是创建一个每周三01:00~04:00每3分钟执行一次的crontab指令?
A: 1,4 3 /bin/bash /home/sijiaomao/ok.sh
B:/3 1,4 * 3 /bin/bash /home/sijiaomao/ok.sh
C:/3 1-4 * 3 /bin/bash /home/sijiaomao/ok.sh
D:/3 1-4 * * * /bin/bash /home/sijiaomao/ok.sh
最后给出的答案是C。但是很明显,C选项也是不对的。理由后面会讲到。
首先,说明crontab的基本格式:
*****command
crontab文件格式:{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
分别对应:分 时 日 月 周 命令
对应的取值范围如下:
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12;1 是1月. 12是12月.
第5列标识号星期区间为0 – 7. 周日可以是0或7
第6列要运行的命令
其次,使用举例:
1 每天早上6点10分(具体时间)
10 6 * * * date +(要执行的命令)
2 每天两个小时(时间范围)
0 */2 * * * date +(要执行的命令)
3 每月1、10、22日早上8点30(月的范围)
30 8 1,10,22 * * +(要执行的命令)
最后,看完这3个举例后,可以很清楚的看到 c选项中,
/3 1-4 * 3 /bin/bash /home/sijiaomao/ok.sh
如果按照,每周三01:00~04:00每3分钟执行的说明,则指令中间少了个*号。真正的命令应该如下:
/3 1-4 * * 3 /bin/bash /home/sijiaomao/ok.sh
参考说明:
19. crontab 定时任务¶
crontab 详细用法 定时任务
linux crontab & 每隔10秒执行一次