Cron表达式是一种用于设置周期性执行任务的字符串,通常用于Unix和类Unix操作系统中的定时任务调度。Cron表达式由六个或七个空格分隔的时间字段组成,每个字段代表一个时间单位。
Cron表达式的基本格式如下:
* * * * * * command_to_execute
- - - - - -
| | | | | |
| | | | | +---- 星期几 (0 - 7) (Sunday=0 or 7)
| | | | +------ 月份 (1 - 12)
| | | +-------- 日期 (1 - 31)
| | +---------- 小时 (0 - 23)
| +------------ 分钟 (0 - 59)
+-------------- 秒 (可选, 0 - 59)
示例详解
假设我们有一个Cron表达式:0 12 * * * /path/to/command
这个表达式的含义是:
0
: 在每小时的第0分钟执行。12
: 在每天的12点(中午)执行。*
: 每一天都执行。*
: 每个月都执行。*
: 每周的每一天都执行。/path/to/command
: 要执行的命令或脚本的路径。
特殊字符
Cron表达式中可以使用一些特殊字符来表示特定的时间模式:
*
: 任意值。例如,在分钟字段中使用*
意味着“每分钟”。,
: 列表值。例如,1,15
在分钟字段中意味着在每小时的第1和第15分钟执行。-
: 范围。例如,1-5
在小时字段中意味着从上午1点到下午5点。/
: 步长。例如,*/10
在分钟字段中意味着每10分钟执行一次。
进阶示例
- 每天凌晨1点执行:
0 1 * * * /path/to/command
- 每隔5分钟执行一次:
*/5 * * * * /path/to/command
- 每月的第一天凌晨1点执行:
0 1 1 * * /path/to/command
- 工作日(周一至周五)的晚上11点执行:
0 23 * * 1-5 /path/to/command
- 每年1月1日凌晨1点执行:
0 1 1 1 * /path/to/command
通过理解和使用这些Cron表达式,你可以灵活地安排各种定时任务,自动化许多日常操作。