cron表达式详细解析
时间: 2023-07-07 11:44:54 浏览: 162
cron表达式是一种用于指定定时任务执行时间的语法,通常用于Linux系统中的计划任务。它由5个或6个空格分隔的字段组成,每个字段表示定时任务执行的不同时间维度,如分钟、小时、日、月、星期。以下是一个标准的cron表达式格式:
```
* * * * *
- - - - -
| | | | |
| | | | +----- day of the week (0 - 6) (Sunday=0)
| | | +---------- month (1 - 12)
| | +--------------- day of the month (1 - 31)
| +-------------------- hour (0 - 23)
+------------------------- min (0 - 59)
```
每个字段的取值范围如下:
- 分钟:0~59
- 小时:0~23
- 日:1~31
- 月:1~12
- 星期:0~6,0表示周日,1~6表示周一到周六
在每个字段中,可以使用以下特殊字符:
- `*`:表示匹配任意值,例如`*`在分钟字段中表示每分钟都触发
- `,`:表示枚举值,例如`1,3,5`在星期字段中表示周一、周三和周五都触发
- `-`:表示范围,例如`10-20`在小时字段中表示从10点到20点都触发
- `/`:表示步长,例如`*/5`在分钟字段中表示每隔5分钟触发一次
- `?`:在日和星期中用于占位,代表任意值,例如`0 0 ? * *`表示每天0点0分执行
此外,cron表达式还支持一些特殊关键字:
- `@yearly`:表示每年执行一次,等同于`0 0 1 1 *`
- `@monthly`:表示每月执行一次,等同于`0 0 1 * *`
- `@weekly`:表示每周执行一次,等同于`0 0 * * 0`
- `@daily`或`@midnight`:表示每天执行一次,等同于`0 0 * * *`
- `@hourly`:表示每小时执行一次,等同于`0 * * * *`
这些特殊关键字可以简化cron表达式的编写,但不是所有的cron实现都支持。
阅读全文