在 Debian 里,“定时器”通常指 systemd 定时器(systemd timer),这是目前最推荐、最常用的方式(替代传统的 cron)。下面从 cron(老方法) 和 systemd timer(新方法) 两方面说明。
假设你要定时执行 /opt/backup.sh
sudo nano /etc/systemd/system/backup.service
内容:
[Unit]
Description=Backup Script
[Service]
Type=oneshot
ExecStart=/opt/backup.sh
sudo nano /etc/systemd/system/backup.timer
示例(每天 3:00 执行):
[Unit]
Description=Run backup daily
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
常用时间写法:
OnCalendar=*-*-* 00:00:00OnCalendar=hourlyOnCalendar=*:0/10OnCalendar=Mon *-*-* 04:00:00sudo systemctl daemon-reload
sudo systemctl enable backup.timer
sudo systemctl start backup.timer
systemctl list-timers
systemctl status backup.timer
crontab -e
0 3 * * * /opt/backup.sh
格式:
分 时 日 月 周 命令
示例:
* * * * **/5 * * * *0 2 * * 0crontab -l
| 特性 | systemd timer | cron |
|---|---|---|
| 日志 | journalctl | /var/log/syslog |
| 精度 | 高 | 中 |
| 依赖管理 | 强 | 弱 |
| 推荐度 | ✅ 推荐 | ⚠️ 老系统 |
systemctl status>> /var/log/xx.log 2>&1/etc/systemd/system/如果你愿意,可以告诉我:
我可以直接帮你写完整配置。