让程序自动上班: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 表达式看起来复杂,但记住这几点就够了:
- 5 个格子: 分时日月周
*表示"每一个"*/数字表示"每隔多久"- 分钟在前,小时在后
最常用的就三种:
- 每小时:
0 * * * * - 每 30 分钟:
*/30 * * * * - 每天固定时间:
0 9 * * *(9 点)
掌握这三个,90% 的定时任务都能搞定!
小贴士: 如果还是觉得复杂,可以用在线工具 Crontab.guru - The cron schedule expression generator,输入表达式就能看到运行时间,非常直观!