📖 知识点
1. cron 时间的五格结构
每条任务 = 五个时间格 + 要执行的命令:
分 时 日 月 周 命令
0 8 * * * /home/user/backup.sh
| 格位 | 含义 | 取值范围 |
|---|---|---|
| 第 1 格 分 | 分钟 | 0~59 |
| 第 2 格 时 | 小时 | 0~23 |
| 第 3 格 日 | 日期(几号) | 1~31 |
| 第 4 格 月 | 月份 | 1~12 |
| 第 5 格 周 | 星期几 | 0~7(0 和 7 都指周日) |
*表示 "任意 / 每个"—— 那一格不限制。
💡 生活比喻五格就像一张 "排班表" 的五个选项:几分、几点、几号、几月、星期几。填上数字就指定具体时刻,填
*就表示 "每天都行、每月都行"。
2. 常见写法对照
0 8 * * * 命令 # 每天8:00
30 9 * * * 命令 # 每天9:30
0 0 * * * 命令 # 每天午夜0:00
0 9 * * 1 命令 # 每周一9:00(周=1)
0 10 1 * * 命令 # 每月1号10:00
0 8 15 6 * 命令 # 每年6月15日8:00
读法:从 "分" 到 "周" 逐个看,填了数字就是指定那个维度,
*就是不限。
3. 更灵活的符号
| 符号 | 含义 | 例子 |
|---|---|---|
| 任意 |
|
| 多个值 |
|
| 范围 |
|
| 间隔 |
|
*/5 * * * * 命令 # 每5分钟执行一次
0 8,20 * * * 命令 # 每天8:00和20:00执行
⚠️ 易错提醒
五个格子的顺序是分 时 日 月 周,别记错位置
第 2 格 "时" 是0~23(不是 1~24),午夜是 0
周和日同时指定时,两者是 "或" 的关系(满足其一就执行),实际使用建议只固定其中一个
⚔️ Kata 实战任务
任务需求:
用
crontab -e打开编辑界面按示例添加几条不同时间的任务(写 echo 到日志验证)
分别写:每天 8 点、每周一 9 点、每 5 分钟
用
crontab -l查看自己写的几条任务试着 "翻译" 每条任务是几点执行
参考代码(在终端依次敲)
# 1. 编辑定时任务
crontab -e
# 加入几条示例:
# 0 8 * * * echo "每天8点" >> /home/user/cron日志.txt
# 30 9 * * 1 echo "每周一9点半" >> /home/user/cron日志.txt
# */5 * * * * echo "每5分钟" >> /home/user/cron日志.txt
# 保存退出
# 2. 查看
crontab -l
运行示例:
user@linux:~$ crontab -l
0 8 * * * echo "每天8点" >> /home/user/cron日志.txt
30 9 * * 1 echo "每周一9点半" >> /home/user/cron日志.txt
*/5 * * * * echo "每5分钟" >> /home/user/cron日志.txt
翻译:
0 8 * * *:分 0、时 8、日月周任意 → 每天 8:00
30 9 * * 1:分 30、时 9、周 1 → 每周一 9:30
*/5 * * * *:分每 5、其他任意 → 每 5 分钟
🧠 思考题
0 8 * * *和30 9 * * 1分别表示什么时候执行?五个格子的顺序是什么?*/5 * * * *里的*/5表示什么?想 "每 10 分钟一次" 该怎么写?
行者孙Python