在 Debian(及大多数 Linux 发行版)里,“定时器”通常指 systemd timer(也可能指 cron)。下面分别说明 如何排查 systemd timer 错误 和 cron 错误。
systemctl list-timers --all
systemctl status yourtimer.timer
重点看:
Loaded:是否加载Active:是否激活Last trigger / Next triggerfailedjournalctl -u yourtimer.timer
journalctl -u yourservice.service
如果 timer 触发了但没效果,通常问题在 对应的 service。
systemctl status yourservice.service
journalctl -xeu yourservice.service
常见错误:
read)systemctl start yourservice.service
如果手动能跑、timer 不跑,通常是:
OnCalendar 写错systemd-analyze verify /etc/systemd/system/yourtimer.timer
[Timer]
OnCalendar=daily
❌ 没写 Persistent=yes,错过时间不补跑
✅ 推荐:
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
Unit=myservice.service
Debian 默认可能没开 cron 日志:
grep cron /var/log/syslog
如果没有:
sudo apt install rsyslog
sudo systemctl restart rsyslog
systemctl status cron
/bin/bash /path/script.sh
cron 环境:
在 crontab 里:
* * * * * /bin/bash /script.sh >> /tmp/cron.log 2>&1
✅ timer 不执行:
systemctl status xxx.timerjournalctl -u xxx.servicestart service✅ cron 不执行:
/var/log/syslog如果你愿意,可以把:
贴出来,我可以直接帮你定位问题。