有用

代码与技术常识02 / 10

Cron 表达式

五个字段:分、时、日、月、星期。

  • 学会用时15 分钟
  • 你的收获定时任务自己写、自己读
  • 用到的频率每周 2 次
  • 难度进阶

01为什么学

没学之前

定时任务写错一位,该跑的没跑,不该跑的天天跑。

学会之后

一眼读懂 cron,写出来也不怕错,还能预览接下来几次运行。

  • 服务器定时备份、抓取、报表都用它
  • 能读懂 AI 写出来的 cron

02图解

图解
0分0–59 9时0–23 *日1–31 *月1–12 1-5星期0–6(0=周日) 示例 0 9 * * 1-5:周一到周五的 9:00
每个字段的取值范围固定,* 表示不限制。

03基本单元9 个

  • 分0–59
  • 时0–23
  • 日1–31
  • 月1–12
  • 星期0–6,0 是周日
  • * 任意
  • , 列举
  • - 范围
  • / 步长

04怎么用

  1. 顺序分 时 日 月 星期,五个字段用空格分开
  2. * 表示任意,, 表示列举,- 表示范围,/ 表示步长
  3. 「日」和「星期」同时限定时,满足其一即可运行
  4. 写完在演示器里预览接下来几次运行时间

05速查表

写法意思
0 9 * * 1-5工作日 9:00
/15 * * *每 15 分钟
0 2 * * *每天凌晨 2:00
30 8 1 * *每月 1 日 8:30
0 /6 * *每 6 小时的整点

06动手试试

Cron 解释器

07套用一次

每天凌晨 2 点备份:0 2 * * *。

08常见的坑

  • 忘了服务器时区

    服务器常是 UTC,北京时间 9 点要写成 1 点。

  • 分钟写 * 以为是每小时

    分钟写 * 会每分钟运行一次。

09自测与练习

先做 10 秒自测,再动手练一下。

0 9 * * 1-5 表示?

10 分钟小练习

写出「每个工作日 18:30」的 cron,并在解释器里验证。

看参考答案
30 18 * * 1-5。

+配合着学

代码与技术常识的全部 10 条