Cron 表达式

简介

Cron 表达式是一种用于设置定时任务的表达方式,通常用于 Unix 系统中的 cron 定时任务调度工具。

它由五个或六个域(字段)组成,具体取决于使用的环境。每个域用 空格 分隔,分别表示如下:

  1. 分钟(0 - 59)
  2. 小时(0 - 23)
  3. 日期(1 - 31)
  4. 月份(1 - 12 或 JAN - DEC)
  5. 星期(0 - 7 或 SUN - SAT,其中 0 和 7 均表示星期日)
  6. (可选)年份

每个域可以使用以下字符来定义复杂的调度模式:

  • *:表示所有可能的值。例如,分钟域中的 * 表示每一分钟都会触发任务
  • ,:用于分隔列表中的多个值。例如:1,2,5 表示在这些特定的时间点触发任务
  • -:用于定义范围。例如:1-5 表示 1 到 5 之间的每一个时间点
  • /:用于指定步长。例如:*/5 表示每个 5 个时间点触发一次任务
  • ?:仅用于日期和星期字段,表示不指定具体的值。通常用于避免冲突
  • L:表示最后一个。例如,在日期域中,L 表示当月的最后一天
  • W:表示工作日(周一到周五)最近的日期。例如,15W 表示最接近 15 号的工作日
  • #:用于指定每月的第几个星期几。例如,3#2 表示每个月的第二个星期三

示例

  1. 每天凌晨 1 点执行一次

    0 1 * * *
    
  2. 每周一的凌晨 2 点执行一次

    0 2 * * 1
    
  3. 每月 1 号和 15 号的凌晨 3 点执行一次

    0 3 1,15 * *
    
  4. 每天的每隔 5 分钟执行一次

    */5 * * * *
    
  5. 每个工作日(周一到周五)的凌晨 4 点执行一次

    0 4 * * 1-5
    

字段总结

字段 允许值 特殊字符
分钟 0 - 59 * , - /
小时 0 - 23 * , - /
日期 1 - 31 * , - / ? L W
月份 1 - 12 或 JAN - DEC * , - /
星期 0 -7 或 SUN - SAT * , - / ? L #
年(可选) 1970 - 2099 * , - /

Cron 表达式的强大之处在于其灵活性,可以通过组合不同的特殊字符来实现各种复杂的定时任务调度需求。

如果本文对您有所帮助,欢迎打赏支持作者!

Licensed under CC BY-NC-SA 4.0
最后更新于 2024-06-24 10:01
使用 Hugo 构建
主题 StackJimmy 设计