
Cron表达式语法详解
Cron表达式是一种强大的时间调度工具,用于在Unix和类Unix系统中安排周期性任务。它由六或七个空格分隔的字段组成,每个字段代表时间表的一个特定部分。以下是Cron表达式的详细语法及其各个字段的含义:
一、基本结构
一个典型的Cron表达式包含六个或七个字段,格式如下:
* * * * * [命令] [参数] | | | | | +----- 星期几 (0 - 7) (星期天为0或7) | | | | +------- 月份 (1 - 12) | | | +--------- 日期 (1 - 31) | | +----------- 小时 (0 - 23) | +------------- 分钟 (0 - 59) +--------------- 秒 (0 - 59, 可选)注意:秒字段是可选的,某些系统可能不支持。
二、各字段说明
分钟(Minute):范围从0到59。
- 例如:0 表示每小时的第0分钟。
小时(Hour):范围从0到23。
- 例如:14 表示下午2点。
日期(Day of Month):范围从1到31。
- 例如:1 表示每个月的第一天。
月份(Month):范围从1到12(或使用缩写如Jan, Feb等)。
- 例如:6 或 Jun 表示6月。
星期几(Day of Week):范围从0到7(0和7都表示星期天),或使用缩写如Sun, Mon等。
- 例如:2 或 Tue 表示星期二。
命令(Command)及参数:要执行的命令或脚本,以及它的参数。
- 例如:/usr/bin/find / -name "core" 在指定时间查找名为"core"的文件。
秒(Second)(可选):范围从0到59。
- 例如:30 表示每分钟的第30秒。
三、特殊字符
- 星号(*):表示任何值。例如,在分钟字段中使用*表示“每分钟”。
- 逗号(,):用于列出不连续的值。例如,1,15 在小时字段中表示凌晨1点和下午3点。
- 中划线(-):用于定义一个范围。例如,1-5 在小时字段中表示凌晨1点到5点之间的每一小时。
- 斜杠(/):用于定义步长。例如,*/5 在分钟字段中表示每5分钟一次。
四、示例
每分钟执行一次:
* * * * * /path/to/command每天凌晨1点执行一次:
0 1 * * * /path/to/command每周一凌晨3:30执行一次:
30 3 * * 1 /path/to/command每月1号和15号的中午12点执行一次:
0 12 1,15 * * /path/to/command每两个小时执行一次(从午夜开始):
0 */2 * * * /path/to/command每分钟的第10秒和第40秒执行一次(需要支持秒的Cron实现):
10,40 * * * * * /path/to/command
通过理解和使用Cron表达式,你可以灵活地安排各种定时任务,满足不同的需求。
