在 Debian 里“定时器”通常有两种常见含义,调试方式差别很大:
下面按最常见场景给你一套调试思路。
systemctl list-timers
systemctl status your.timer
看:
activemaskedsudo systemctl start your.timer
# 或直接跑服务
sudo systemctl start your.service
如果 service 失败,定时器永远不触发。
journalctl -u your.service
journalctl -u your.timer
journalctl -xe
常见错误:
[Timer]
OnCalendar=*-*-* 03:00:00
Unit=your.service
检查:
OnCalendar 格式是否正确Unit 是否写错sudo systemctl daemon-reload
sudo systemctl enable your.timer
systemd-analyze calendar "*-*-* 03:00:00"
Debian 默认可能没开:
sudo journalctl -u cron
# 或
grep cron /var/log/syslog
/bin/bash /path/script.sh
cron 环境:
建议:
*/5 * * * * /bin/bash /home/user/job.sh >> /tmp/job.log 2>&1
systemctl status cron
| 现象 | 原因 |
|---|---|
| 定时器不触发 | service 失败 |
| 时间不对 | 时区错误 |
| 脚本不执行 | 路径/权限问题 |
| 环境变量缺失 | systemd/cron 环境不同 |
| 日志看不到 | 没重定向输出 |
你可以贴出:
.timer 和 .service 文件journalctl 报错我可以直接帮你定位问题。