crontab的笔试题随想

最近看到一道题目,具体如下:

下列哪个是创建一个每周三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秒执行一次

原文地址:https://www.cnblogs.com/cmderq/p/10165674.html