让程序自动上班:5 分钟学会 Cron 表达式

你上班,程序也得上班

早上 9 点,闹钟响了,你爬起来去上班。

有没有想过,程序也可以"定时上班"?

比如:

  • 每天早上 9 点自动发邮件
  • 每半小时检查一次服务器
  • 每天凌晨 2 点备份数据

这就是 Cron 表达式 的作用——给程序设定"上班时间"。


Cron 表达式是什么?

简单说,就是一串数字和符号,用来告诉电脑"什么时候运行程序"。

长这样:

0 9 * * *

这行代码的意思是:每天早上 9 点运行


5 个格子,记住就行

Cron 表达式有 5 个格子,每个格子代表一个时间单位:

分钟  小时  日期  月份  星期
 *    *    *    *    *

记忆口诀:分时日月周

位置含义范围
第1格分钟0-59
第2格小时0-23
第3格日期1-31
第4格月份1-12
第5格星期0-6(0=周日,1=周一...)

两个符号就够用

1. * = "每一个"

0 * * * *
  • 第 0 分钟
  • 每小时
  • 每天、每月、每周

意思: 每小时整点运行(1:00、2:00、3:00...)


2. */数字 = "每隔多久"

*/30 * * * *

意思: 每隔 30 分钟运行一次(0:00、0:30、1:00、1:30...)


三个常用例子

例子 1:每小时运行

0 * * * *

运行时间: 1:00、2:00、3:00...(每小时整点)


例子 2:每 30 分钟运行

*/30 * * * *

运行时间: 0:00、0:30、1:00、1:30...(每半小时)


例子 3:每天固定时间运行

每天早上 9 点:

0 9 * * *

每天晚上 8 点半:

30 20 * * *

(20 = 晚上 8 点,因为是 24 小时制)

每天凌晨 2 点:

0 2 * * *

一个常见错误

很多人会把分钟和小时搞反:

9 0 * * *  # ❌ 错误:每小时的第 9 分钟
0 9 * * *  # ✅ 正确:每天早上 9 点

记住:分钟在前,小时在后!


快速参考

需求Cron 表达式运行时间
每小时0 * * * *1:00、2:00、3:00...
每 30 分钟*/30 * * * *0:00、0:30、1:00...
每天早上 9 点0 9 * * *每天 9:00
每天晚上 8 点半30 20 * * *每天 20:30

总结

Cron 表达式看起来复杂,但记住这几点就够了:

  1. 5 个格子: 分时日月周
  2. * 表示"每一个"
  3. */数字 表示"每隔多久"
  4. 分钟在前,小时在后

最常用的就三种:

  • 每小时:0 * * * *
  • 每 30 分钟:*/30 * * * *
  • 每天固定时间:0 9 * * *(9 点)

掌握这三个,90% 的定时任务都能搞定!


小贴士: 如果还是觉得复杂,可以用在线工具 Crontab.guru - The cron schedule expression generator,输入表达式就能看到运行时间,非常直观!