crontab 的时间格式由五个字段组成,每个字段用空格分隔,分别代表了执行任务的时间设置。格式如下:

1
2
3
4
5
6
7
8
* * * * * <command>
- - - - -
| | | | |
| | | | +---- 星期几 (0 - 7) (Sunday=0 or 7)
| | | +------ 月份 (1 - 12)
| | +-------- 日期 (1 - 31)
| +---------- 小时 (0 - 23)
+------------ 分钟 (0 - 59)

解释每个字段:

  1. 分钟(0-59):任务执行的分钟。
    例如,0 表示整点(00分钟),5 表示在每小时的第5分钟,*/5 表示每5分钟。

  2. 小时(0-23):任务执行的小时。
    例如,0 表示午夜12点,4 表示上午4点,*/2 表示每隔2小时。

  3. 日期(1-31):任务执行的日期。
    例如,1 表示每月的1号,15 表示每月的15号,*/5 表示每5天。

  4. 月份(1-12):任务执行的月份。
    例如,1 表示1月,12 表示12月,*/3 表示每3个月。

  5. 星期几(0-7):任务执行的星期几(07 都代表星期天)。
    例如,07 表示星期天,1 表示星期一,*/2 表示每隔2天(即每星期二和星期四)。

特殊符号:

  • *(星号):表示任何时间都匹配。例如,* * * * * 表示每分钟都执行任务。
  • ,(逗号):用来表示多个值。例如,1,3,5 在某个字段中表示第1、3和5的值。
  • -(连字符):表示一个范围。例如,1-5 表示从1到5的所有值。
  • /(斜杠):表示“每”。例如,*/5 表示每5个单位时间(分钟、小时、日期等)。

示例:

  1. 每小时的第5分钟执行任务

    1
    5 * * * * <command>
  2. 每天凌晨3点执行任务

    1
    0 3 * * * <command>
  3. 每月1号和15号的中午12点执行任务

    1
    0 12 1,15 * * <command>
  4. 每个星期一至星期五的上午9点执行任务

    1
    0 9 * * 1-5 <command>
  5. 每5分钟执行一次任务

    1
    */5 * * * * <command>