跳转至

定时任务管理(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 —— 日志系统与分析(教学完整版)