Cron表达式是什么?

Cron是Linux/Unix系统的定时任务调度器,用一个字符串表达时间规则。比如:

0 9 * * 1-5

这个表达式意思是:每个工作日早上9:00执行

但对于不熟悉Cron语法的人来说,这串字符像天书一样。* 代表什么?1-5 怎么理解?写错了怎么办?

Cron表达式的基本结构

Cron表达式由5个字段组成,从左到右分别是:

字段含义取值范围
第1位分钟0-59
第2位小时0-23
第3位日期1-31
第4位月份1-12
第5位星期0-6(0=周日)

特殊字符:

  • * = 任意值
  • , = 列表分隔,如 1,3,5
  • - = 范围,如 1-5
  • / = 步长,如 */5 表示每5个单位

举例:

  • */15 * * * * = 每15分钟
  • 0 */2 * * * = 每2小时
  • 0 9 * * 0,6 = 每周六、周日早上9点
  • 0 0 1 * * = 每月1号午夜

常见场景

服务器定时备份:每天凌晨2点执行数据库备份

0 2 * * *

发送邮件提醒:每个工作日上午9点

0 9 * * 1-5

清理日志:每周日凌晨3点

0 3 * * 0

价格监控:每30分钟检查一次

*/30 * * * *

Cron表达式生成器能做什么?

CloverTools Cron表达式生成器 解决两个核心痛点:

1. 双向转换

  • 从自然语言到表达式:用下拉菜单选时间,系统自动生成cron表达式
  • 从表达式到自然语言:输入任意cron表达式,自动解释含义

2. 下次执行时间预览

输入表达式后,自动计算接下来5次执行的时间,不用手动推算对不对。

3. 语法校验

写完cron表达式后一键校验,错误立即提示,不用等定时任务"没执行"才发现写错了。

为什么用在线工具而不是百度搜?

网上搜"Cron表达式"确实能搜到很多教程,但存在几个问题:

  • 教程只能教你语法,你还是要自己写、自己校验
  • 搜到的在线工具往往有广告、界面复杂
  • 无法实时预览下次执行时间

在线工具则相反:即输即得,校验+预览一步到位

实际使用演示

假设你想设置:每天下午6点执行一次任务

  1. 打开 Cron表达式生成器
  2. 在分钟位输入 0,小时位输入 18
  3. 其他位保持 *(代表每一天)
  4. 点击生成,得到 0 18 * * *
  5. 下方自动显示接下来5次执行时间

假设你想设置:每周一早上8点

  1. 0 8 * * 1
  2. 自动解析:每天8:00,每周一

进阶:Crontab表达式和Spring Schedule的区别

有一点要注意:Linux Crontab和Java Spring Framework的Cron表达式格式略有不同

框架格式示例
Linux Crontab5位0 9 * * 1-5
Spring Schedule6位(秒在最前)0 0 9 * * 1-5

CloverTools的生成器默认使用标准5位Linux格式,如需6位格式可手动在最前面加 00 0


Cron表达式是服务器运维和自动化任务的基础。记住语法要花时间,但用对工具可以完全省掉这个学习成本。CloverTools Cron表达式生成器 双向转换 + 实时预览 + 语法校验,推荐收藏备用。