ToolkitX
知识库工具箱

定时任务 Cron

crontab 定时任务配置与管理

15min·进阶

01. Cron 是啥——定时闹钟

Cron 就是 Linux 自带的任务计划器,相当于一个全天候不睡觉的管家,到点就帮你做事。备份数据库、清理日志、发邮件报告——这些重复劳动全交给它。 说白了就是你跟服务器说:「每天早上 3 点帮我备份数据库」,然后它雷打不动地执行,你该睡觉睡觉。

02. Crontab 语法

每一条 cron 任务都长这样:分 时 日 月 星期 命令。五个时间字段 + 要执行的命令。记忆技巧:从细到粗,从分钟到星期。 打个比方:'30 3 * * * /backup.sh'——每天凌晨 3:30 执行备份脚本。星号代表「每个」。
bash
# 编辑当前用户的定时任务
crontab -e

# 查看当前用户的定时任务
crontab -l

# 格式:分 时 日 月 星期 命令
# 例子:
0 2 * * * /backup.sh              # 每天凌晨 2 点备份
*/5 * * * * /check.sh             # 每 5 分钟检查一次
0 9 * * 1 ~/weekly-report.sh      # 每周一早上 9 点
0 0 1 * * ~/monthly-bill.sh       # 每月 1 号凌晨
@reboot /start-service.sh         # 开机自动执行

# 特殊写法(不用记数字)
@daily /backup.sh                 # = 0 0 * * *
@hourly /check.sh                 # = 0 * * * *
@weekly /report.sh                # = 0 0 * * 0

03. Cron 日志与排查

Cron 执行了没?出错了怎么查?首先确认 cron 服务在跑,然后查日志:
bash
systemctl status cron       # 确认 cron 服务在运行
systemctl restart cron        # 改了配置有时需要重启

grep CRON /var/log/syslog     # 看 cron 执行记录(Ubuntu)
tail -f /var/log/cron         # 看 cron 执行记录(CentOS)

# 建议:cron 命令里用绝对路径 + 输出重定向到日志
0 2 * * * /usr/bin/python3 /home/user/backup.py >> /var/log/backup.log 2>&1
cron 里的环境变量跟你的终端不一样,PATH 很短。写脚本时用绝对路径最保险,比如 /usr/bin/python3 而不是 python3。

知识测验

1/4正确 0

cron 任务 '0 4 * * *' 什么时候执行?

下一节

SSH 高级用法

下一节