在 Debian(以及大多数 Linux 发行版)中,设置“定时器”通常指两种方式:
下面分别说明。
crontab -e
如果是第一次使用,会让你选择编辑器(如 nano、vim)。
分 时 日 月 星期 命令
| 字段 | 范围 |
|---|---|
| 分 | 0–59 |
| 时 | 0–23 |
| 日 | 1–31 |
| 月 | 1–12 |
| 星期 | 0–7(0和7都是周日) |
✅ 每天早上 8 点执行脚本:
0 8 * * * /home/user/backup.sh
✅ 每小时执行一次:
0 * * * * /home/user/task.sh
✅ 每 5 分钟执行一次:
*/5 * * * * /home/user/check.sh
✅ 每周一凌晨 3 点:
0 3 * * 1 /home/user/weekly.sh
crontab -l # 查看
crontab -r # 删除
grep CRON /var/log/syslog
适合需要 精确到秒、依赖服务、复杂调度 的场景。
sudo nano /etc/systemd/system/mytask.service
内容:
[Unit]
Description=My Task
[Service]
Type=oneshot
ExecStart=/home/user/task.sh
sudo nano /etc/systemd/system/mytask.timer
示例(每天 7:30 执行):
[Unit]
Description=Run mytask daily
[Timer]
OnCalendar=07:30
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now mytask.timer
systemctl list-timers
systemctl status mytask.timer
| 场景 | 推荐 |
|---|---|
| 简单定时任务 | ✅ cron |
| 精确到秒 / 依赖服务 | ✅ systemd timer |
| 服务器 / 自动化运维 | systemd timer |
| 个人脚本 | cron |
chmod +x /home/user/task.sh
#!/bin/bash
sudo crontab -e
如果你愿意,可以告诉我:
我可以 直接帮你写好 cron 或 systemd 配置。