想必我们有很多朋友应该知道,在云服务器中设置定时任务的时候是需要配合crontab命令设置定时的。比如设置每天或者每周某个时间点执行任务的。这里我们可以用到crontab命令,我们看到的crontab命令一般是这样子的格式。
0 0 * * 1-5
看到crontab命令后是不是不知道什么意思?这里我们详细的介绍一下。
crontab表达式由空格分隔的6个字段组成,每个字段都有特定的取值范围或规则。以下是cron表达式的语法:
字段1 字段2 字段3 字段4 字段5 字段6
秒 分钟 小时 日期 月份 星期几
其中,每个字段的取值规则如下:
1.秒(秒针):取值范围为0-59,表示每分钟的秒数。
2.分钟(分针):取值范围为0-59,表示每小时的分钟数。
3.小时(时针):取值范围为0-23,表示每天的小时数。
4.日期(日历):取值范围为1-31,表示每月的日期数。
5.月份:取值范围为1-12或者JAN-DEC,表示每年的月份。
6.星期几:取值范围为0-6或者SUN-SAT,表示每周的星期几。
除了具体的数字值,cron表达式还支持一些特殊字符,以及用于描述范围、列表和通配符的符号。以下是一些常用的特殊字符和符号:
· 星号(*):表示匹配该字段所有可能的取值。
· 斜线(/):用于指定一个范围内的间隔值。
· 逗号(,):用于列出多个取值。
· 连字符(-):用于指定一个范围内的连续值。
· 问号(?):仅用于日期和星期几中,表示无需指定特定值。
这里我也罗列几个常见的crontab命令。
每1分钟执行一次myCommand
* * * * * myCommand
每小时的第3和第15分钟执行
3,15 * * * * myCommand
在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
每一小时重启smb
* */1 * * * /etc/init.d/smb restart
晚上11点到早上7点之间,每隔一小时重启smb
0 23-7 * * * /etc/init.d/smb restart