定时任务管理(crontab)¶
本章目标:
- 理解什么是定时任务、为什么要用定时任务
- 掌握 crontab 的基本语法与时间规则
- 能编写和管理常见的定时任务
- 避免生产环境中常见的 crontab 错误
1. 什么是定时任务?¶
在 Linux 中,定时任务指的是:
在指定的时间点,自动执行某个命令或脚本
常见用途:
- 定时备份
- 定时清理日志
- 定时统计数据
- 定时执行脚本
2. crontab 是什么?¶
crontab 是 Linux 中最常用的 定时任务工具。
- 由系统服务
cron负责执行 - 每个用户都有自己的 crontab
- 后台自动运行,无需人工干预
3. crontab 的基本用法¶
3.1 编辑定时任务¶
crontab -e
👉 打开当前用户的定时任务配置文件
3.2 查看定时任务¶
crontab -l
3.3 删除所有定时任务¶
crontab -r
⚠️ 删除后不可恢复,谨慎使用
4. crontab 时间格式(重点)¶
* * * * *
分 时 日 月 周
| 位置 | 含义 | 范围 |
|---|---|---|
| 第 1 位 | 分钟 | 0–59 |
| 第 2 位 | 小时 | 0–23 |
| 第 3 位 | 日期 | 1–31 |
| 第 4 位 | 月份 | 1–12 |
| 第 5 位 | 星期 | 0–7(0 和 7 都表示周日) |
5. 常见时间写法示例¶
每分钟执行¶
* * * * * command
每天 2 点执行¶
0 2 * * * command
每周一 9 点执行¶
0 9 * * 1 command
每 5 分钟执行一次¶
*/5 * * * * command
6. crontab 执行脚本(实战)¶
6.1 示例:定时执行 Shell 脚本¶
0 1 * * * /home/user/backup.sh
📌 教学重点:
- 使用 绝对路径
- 脚本必须有执行权限
6.2 给脚本加执行权限¶
chmod +x backup.sh
7. crontab 的执行环境(重要)¶
crontab 的环境与登录终端不同:
- 没有完整 PATH
- 不会加载
.bashrc
📌 推荐写法:
/bin/bash /home/user/script.sh
8. 日志与排错¶
8.1 查看 cron 日志¶
grep CRON /var/log/syslog
或:
grep cron /var/log/messages
8.2 常见不执行原因¶
- 路径写错
- 脚本没权限
- 环境变量缺失
- cron 服务未运行
9. cron 服务管理¶
systemctl status cron
systemctl start cron
systemctl enable cron
10. 常见错误(一定要提醒)¶
- 使用相对路径
- 忘记脚本执行权限
- 直接写
source - 不重定向输出导致邮件刷屏
11. 教学小结¶
你现在应该能够:
- 理解 crontab 的作用
- 编写基本定时任务
- 管理和排错 crontab
- 在生产环境安全使用 cron
12. 教学练习¶
练习 1¶
编写一个每分钟执行的 echo 任务。
练习 2¶
定时每天执行一个 Shell 脚本。
练习 3¶
查看并确认 cron 服务状态。
👉 下一章: 07_log_management.md —— 日志系统与分析(教学完整版)