每分钟 允许的通配符[, - * /]
周期 - 分钟
间隔 从0分钟开始,每 分钟执行一次
指定
每小时 允许的通配符[, - * /]
周期 - 小时
间隔 从0小时开始,每 小时执行一次
指定
AM:
PM:
每日 允许的通配符[, - * / L W]
周期 -
间隔 从0日开始,每 天执行一次
指定
每月 允许的通配符[, - * /]
周期 -
间隔 月执行一次
指定
每周 允许的通配符[, - * / L #]
周期 -
间隔 每个
指定
分钟
小时
各字段:
表达式:
近10次执行时间:
说明
一个标准的crontab表达式由五个以空格分隔的时间字段组成,每个字段都像一个独立的齿轮,共同驱动着整个时钟。


    *   *   *   *   *   
    |   |   |   |   |   
    |   |   |   |   | 
    |   |   |   |   +------ 周 (0 ~ 7 , Sunday=0 or 7)
    |   |   |   +---------- 月 (1 - 12)
    |   |   +-------------- 日 (1 - 31)
    |   +------------------ 时 (0 - 23)
    +---------------------- 分 (0 - 59)

除了基本的数字范围外,cron 表达式还支持一些特殊符号和字符:
  • 星号(*):表示匹配任意值。例如,* 在分钟字段中表示每分钟都执行。
  • 逗号(,):用于分隔多个值。例如,1,3,5 在小时字段中表示 1 点、3 点和 5 点执行。
  • 斜线(/):用于指定间隔值。例如,*/5 在分钟字段中表示每 5 分钟执行一次。
  • 连字符(-):用于指定范围。例如,10-20 在日期字段中表示从 10 号到 20 号。


一些经典的crontab表达式:
序号 表达式 含义 解释与典型应用场景
1 * * * * * 每分钟执行一次 最基础的表达式,常用于测试或需要高频轮询的任务。
2 0 * * * * 每小时的0分执行一次 非常适合执行小时报表、日志滚动等周期性任务。
3 0 2 * * * 每天凌晨2:00执行一次 最经典的每日任务时间,用于数据库备份、每日数据清理等,此时服务器负载通常较低。
4 0 2 * * 1 每周一凌晨2:00执行一次 用于周报生成、每周统计等任务。
5 0 2 1 * * 每月1号凌晨2:00执行一次 用于月报生成、月度账单计算等。
6 */5 * * * * 每5分钟执行一次 非常常见的监控任务间隔,用于检查进程状态、同步数据等。
7 0 9-18 * * 1-5 工作日上午9点到下午6点,每小时整点 执行一次 模拟“上班时间”每小时执行的任务,例如检查订单状态。
8 0 0,12 * * * 每天中午12点和午夜0点 各执行一次 一天两次的固定任务,例如每天两次的备份。
9 */10 9-17 * * 1-5 工作日上午9点到下午5点,每10分钟执行一次 监控和数据同步的黄金表达式,例如在办公时间内频繁检查邮件、同步文件或刷新缓存。
10 0 0 1 1 * 每年1月1日0:00执行一次 用于执行年度任务,如新年祝福推送、年度报告生成、或按年重置的计数器等。
crontab表达式非常灵活,可以满足各种定时任务的需求。