什么是 Crontab?
Crontab(Cron Table)是 Linux/Unix 系统中用于设置周期性执行任务的工具。它像是一个 24 小时待命的“闹钟”,可以在指定的时间点自动执行备份、清理日志或运行脚本。
远思为径,码动价值。 优秀的自动化脚本能为系统运维节省大量时间。
核心语法
Crontab 的每一行规则由 5 个时间参数 和 1 个待执行命令 组成:
* * * * * command
┬ ┬ ┬ ┬ ┬
│ │ │ │ └─ 星期几 (0 - 6, 0 代表周日)
│ │ │ └─ 月份 (1 - 12)
│ │ └─ 每月第几天 (1 - 31)
│ └─ 小时 (0 - 23)
└─ 分钟 (0 - 59)
特殊符号说明
*:代表任意值(每分钟/每小时…)。,:代表多个不连续的时间点(如1,3,5)。-:代表连续的时间范围(如1-5)。/:代表步长/频率(如*/10代表每 10 分钟一次)。
常用操作指令
在终端中,你可以通过以下命令管理任务:
| 命令 | 说明 |
|---|---|
crontab -e |
编辑当前用户的定时任务 (Edit) |
crontab -l |
查看当前已有的定时任务 (List) |
crontab -r |
清空当前用户的所有任务 (Remove) |
实战案例
| 任务描述 | 表达式 |
|---|---|
| 每分钟运行一次 | * * * * * /path/to/cmd |
| 每小时整点运行 | 0 * * * * /path/to/cmd |
| 每天凌晨 2:30 运行 | 30 2 * * * /path/to/cmd |
| 工作日(周一至五)早上 9:00 | 0 9 * * 1-5 /path/to/cmd |
避坑与进阶建议
1. 使用绝对路径
Cron 运行时的环境变量(PATH)非常有限,建议使用完整路径:
- 推荐:
/usr/bin/python3 /home/user/myscript.py
2. 重定向输出日志
由于 Cron 在后台运行,建议将结果记录到文件以便排查:
* * * * * /path/to/script.sh >> /tmp/cron.log 2>&1
感谢阅读,欢迎在评论区交流。