Debian 下“定时器不执行”通常指 systemd timer(或 cron)没有按预期触发。下面按最常见原因系统梳理,并给出排查步骤。
systemctl list-timers
看不到你的 timer,说明没启用:
systemctl enable --now yourtimer.timer
很多人只做了:
systemctl enable yourtask.service
但 service 不会自动跑,必须启用 .timer:
systemctl enable yourtask.timer
查看是否执行过:
systemctl list-timers --all
journalctl -u yourtask.service
journalctl -u yourtask.timer
常见失败原因:
User= 但权限不足示例(每天 3 点):
[Timer]
OnCalendar=*-*-* 03:00:00
错误写法如:
OnCalendar=daily 3:00 # 错误
检查语法:
systemd-analyze verify yourtimer.timer
timedatectl
如果时间错误,timer 不会触发。
systemctl status cron
没运行就:
systemctl enable --now cron
crontab -l
注意:
示例:
0 3 * * * /usr/bin/bash /home/user/backup.sh >> /tmp/cron.log 2>&1
cron 的 PATH 很小:
PATH=/usr/bin:/bin
systemctl enable --now xxx.timersystemctl list-timers 能看到journalctl -u xxx.service 无报错如果你愿意,可以把:
贴出来,我可以直接帮你指出问题在哪。