“Debian 定时器报错”通常指的是 systemd timer(而不是 cron),因为你提到了“定时器”。不过我先给你一个快速判断 + 常见错误对照表,你可以对照看是哪一种。
systemctl list-timers
systemctl status xxx.timer
systemctl status cron
cat /var/log/syslog | grep cron
Failed to start xxx.timer: Unit xxx.service not found原因:timer 引用了不存在的 service
✅ 解决:
ls /etc/systemd/system/xxx.service
如果没有,需要创建:
[Unit]
Description=xxx
[Service]
ExecStart=/usr/bin/bash /opt/xxx.sh
然后:
systemctl daemon-reload
systemctl enable --now xxx.timer
xxx.timer: Timer unit lacks at least one OnCalendar=, OnBootSec= or OnUnitActiveSec=原因:timer 文件里没有触发条件
✅ 解决示例:
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
xxx.service: Main process exited, code=exited, status=1/FAILURE原因:脚本本身报错,不是 timer 的问题
✅ 排查:
journalctl -u xxx.service -xe
bash -x /opt/xxx.sh
常见原因:
Persistent=false✅ 解决:
systemctl enable xxx.timer
systemctl start xxx.timer
✅ 检查时区:
timedatectl
如果不是本地时间:
timedatectl set-timezone Asia/Shanghai
(CRON) INFO (pidfile fd 0)
Permission denied
✅ 检查:
ls -l /var/spool/cron/crontabs/
确保:
你可以直接把 报错原文 贴出来,例如:
systemctl status backup.timer
journalctl -u backup.timer
或者:
Apr 10 02:00:01 debian CRON[1234]: (root) CMD (/opt/backup.sh)
我可以 精确告诉你哪一行错了、怎么改。
你是 systemd timer 还是 cron?有没有具体报错?