在 Ubuntu 里,cron 是用来设置定时任务的工具。下面从「基本用法 → 常见示例 → 管理命令」给你讲清楚。
cron 的任务写在 crontab 里,格式如下:
* * * * * 命令
│ │ │ │ │
│ │ │ │ └─ 星期 (0-7,0和7都代表周日)
│ │ │ └─── 月份 (1-12)
│ │ └───── 日期 (1-31)
│ └─────── 小时 (0-23)
└───────── 分钟 (0-59)
crontab -e
第一次用会让你选编辑器(推荐 nano 或 vim)
crontab -l
crontab -r
sudo nano /etc/crontab
* * * * * /home/user/test.sh
0 2 * * * /home/user/backup.sh
30 * * * * /home/user/run.sh
0 9 * * 1 /home/user/weekly.sh
*/5 * * * * /home/user/check.sh
默认 cron 不会显示输出,建议:
* * * * * /home/user/test.sh >> /home/user/cron.log 2>&1
>>:追加日志2>&1:错误也写进去cron 环境很干净,不要用相对路径
❌ 错误:
python test.py
✅ 正确:
/usr/bin/python3 /home/user/test.py
查路径:
which python3
chmod +x /home/user/test.sh
sudo systemctl status cron
启动:
sudo systemctl start cron
开机自启:
sudo systemctl enable cron
如果你不想用 cron,也可以用 systemd timer(更现代),需要的话我可以单独讲。
如果你有具体需求(比如“每天备份 MySQL”“每 10 秒执行一次”),直接告诉我,我帮你写完整 crontab。