在 Debian 里“定时器不运行”通常指 systemd timer 没有按预期触发,或者 cron / anacron 任务没执行。下面按最常见原因逐一说明,你可以对照排查。
systemctl list-timers
systemctl status your.timer
常见问题:
enable 了 service,没 enable 和 start timersystemctl enable --now your.timer
your.timer 默认触发 your.service
如果 service 名不同,需要在 timer 里指定:
[Timer]
Unit=your-service.service
检查:
systemd-analyze calendar "daily"
systemd-analyze calendar "*-*-* 02:00:00"
错误示例:
timedatectl
如果时间是错的,timer 永远不会触发。
journalctl -u your.service
journalctl -u your.timer
常见原因:
✅ 正确示例:
[Service]
ExecStart=/usr/local/bin/backup.sh
如果 service 是 Type=oneshot 且失败,timer 仍会跑
但如果是普通 service 且反复失败,可能被限流。
systemctl status cron
没运行就:
systemctl enable --now cron
root 的定时写在 /etc/crontab 或 /var/spool/cron/crontabs/rootcrontab -e
cron 环境极少:
PATH=/usr/bin:/bin
脚本里要用绝对路径,或在 crontab 顶部加:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
chmod +xanacron 只在开机后运行:
如果你愿意,可以把:
journalctl 报错贴出来,我可以直接帮你定位是哪一条原因。