在 Debian(以及大多数 Linux 发行版)中,cron 是用来设置定时任务的工具。下面从基础到常用示例给你讲清楚怎么用。
sudo apt update
sudo apt install cron
sudo systemctl start cron
sudo systemctl enable cron
sudo systemctl status cron
crontab -e
第一次会让你选编辑器(推荐 nano 或 vim)
crontab -l
crontab -r
sudo crontab -e
* * * * * command
│ │ │ │ │
│ │ │ │ └─ 星期 (0-7, 0和7都是周日)
│ │ │ └─── 月份 (1-12)
│ │ └───── 日期 (1-31)
│ └─────── 小时 (0-23)
└───────── 分钟 (0-59)
| 示例 | 含义 |
|---|---|
0 0 * * * |
每天 0 点 |
*/5 * * * * |
每 5 分钟 |
0 3 * * 1 |
每周一 3 点 |
0 0 1 * * |
每月 1 号 0 点 |
0 2 * * * /home/user/backup.sh
*/10 * * * * /usr/bin/python3 /home/user/task.py
*/5 * * * * /home/user/check.sh >> /home/user/cron.log 2>&1
cron 环境 没有 PATH,一定要写全路径:
which python3
# /usr/bin/python3
/etc/crontab
格式多了“用户”:
* * * * * root /root/script.sh
/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.weekly/
/etc/cron.monthly/
放脚本进去就会按周期执行。
sudo tail -f /var/log/syslog | grep cron
在 crontab 顶部加:
PATH=/usr/bin:/bin
crontab -e
写入:
*/1 * * * * echo "hello cron" >> /tmp/cron_test.log
一分钟后查看:
cat /tmp/cron_test.log
如果你愿意,我可以:
直接说你的使用场景就行。