在 Debian(及大多数 Linux 发行版)中,“定时器”通常指 systemd 定时器(systemd timer),这是目前最推荐、最标准的方式。下面从 创建 systemd 定时器 讲起,并补充 cron 作为传统方案。
假设你要定时执行 /opt/backup.sh
sudo vim /etc/systemd/system/backup.service
内容示例:
[Unit]
Description=Backup Script
[Service]
Type=oneshot
ExecStart=/opt/backup.sh
sudo vim /etc/systemd/system/backup.timer
示例(每天 3:00 执行):
[Unit]
Description=Run backup daily
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
Unit=backup.service
[Install]
WantedBy=timers.target
常用时间写法:
OnCalendar=*-*-* 03:00:00(每天 3 点)OnCalendar=hourlyOnCalendar=weeklyOnCalendar=Mon *-*-* 04:00:00(每周一 4 点)sudo systemctl daemon-reload
sudo systemctl enable --now backup.timer
systemctl list-timers
systemctl status backup.timer
crontab -e
示例(每天 3 点执行):
0 3 * * * /opt/backup.sh
格式:
分 时 日 月 周 命令
sudo vim /etc/crontab
示例:
0 3 * * * root /opt/backup.sh
| 特性 | systemd timer | cron |
|---|---|---|
| 日志 | journalctl | 邮件/自定义 |
| 精度 | 高 | 一般 |
| 依赖管理 | 强 | 弱 |
| 学习成本 | 稍高 | 低 |
✅ 服务器/生产环境:systemd timer
✅ 简单脚本:cron
如果你愿意,可以告诉我:
我可以直接帮你写完整配置。