前言
最近随着某些羊毛软件日益繁多,接触CRON 表达式也很频繁,很多人其实并不是很了解 CRON,也有人经常问我,在这里就给大家讲解一下如何写 CRON 表达式,当然如果你感觉浪费时间枯燥无味,也可以直接用下面我写的例子直接修改为自己的,指南分为速成版跟进阶版,根据需要进行阅读。
介绍
Linux Crontab是用来定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
Crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
速成
表达式有好几种字段规范,如:Quantumult X(俗称“圈X”)支持 5 位或 6 位,他们的区别就是有没有秒的支持(6位左面第一个就是秒,5位就是左面第一位是分),以此往前类推 秒分时日月_周(礼拜几),所以最大值应该是59秒 59分 23点 31日 12月 7礼拜天。
1 | # 五位说明: |
1 | # 六位说明: |
1 | # 实例: |
高阶
| 字段 | 是否必填 | 允许值 | 允许特殊字符 | 备注 |
|---|---|---|---|---|
| 秒 | 是 | 0–59 | *``,``- |
标准实现不支持此字段。 |
| 分钟 | 是 | 0–59 | *``,``- |
|
| 小时 | 是 | 0–23 | *``,``- |
|
| 日 | 是 | 1–31 | *``,``-``?``L``W |
?``L``W只有部分软件实现了 |
| 月 | 是 | 1–12 or JAN–DEC | *``,``- |
|
| 星期 | 是 | 0–7 or SUN–SAT | *``,``-``?``L``# |
?``L``#只有部分软件实现了 |
| Linux和Spring的允许值为0-7,0和7为周日 | ||||
| Quartz的允许值为1-7,1为周日 | ||||
| 年份 | 否 | 1970–2099 | *``,``- |
标准实现不支持此字段。 |
标准字段
逗号用于分隔列表。例如,在第5个字段(星期几)中使用 MON,WED,FRI 表示周一、周三和周五。
连字符定义范围。例如,2000-2010 表示2000年至2010年期间的每年,包括2000年和2010年。
除非用反斜杠()转义,否则命令中的百分号(%)会被替换成换行符,第一个百分号后面的所有数据都会作为标准输入发送给命令。
结语
最后附上在线执行工具,如果你不确定表达式的写法,或者无法解读,把 CRON 表达式 贴上确定一下。 https://tool.lu/crontab网友分享 https://crontab.guru/