在 Debian(以及所有类 Unix 系统)中,crontab 使用的是 标准 Vixie cron 格式。下面详细说明。
每一行代表一个定时任务,格式如下:
* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └── 星期几 (0–7,0和7都代表周日)
│ │ │ └──── 月份 (1–12)
│ │ └────── 日期 (1–31)
│ └──────── 小时 (0–23)
└────────── 分钟 (0–59)
30 2 * * * /usr/bin/backup.sh
表示:每天凌晨 2:30 执行 backup.sh
| 符号 | 含义 |
|---|---|
* |
任意值 |
, |
多个值,如 1,15 |
- |
范围,如 9-17 |
/ |
步长,如 */5 每 5 分钟 |
*/10 * * * * # 每 10 分钟
0 9-18 * * 1-5 # 工作日 9 点到 18 点整
crontab -e # 编辑当前用户
crontab -l # 查看
crontab -r # 删除
格式中没有用户字段
文件位置:
/etc/crontab
/etc/cron.d/*
格式 多一个用户字段:
* * * * * root /usr/bin/echo hello
@reboot # 开机时执行
@yearly # 每年
@monthly # 每月
@weekly # 每周
@daily # 每天
@hourly # 每小时
示例:
@reboot /usr/local/bin/init.sh
cron 默认 PATH 很小:
PATH=/usr/bin:/bin
✅ 建议:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sudo tail -f /var/log/syslog | grep cron
如果你愿意,可以告诉我:
我可以帮你直接写完整 crontab 示例。