温馨提示×

debian定时器怎样调试

小樊
38
2026-09-20 03:23:01
栏目: 智能运维

在 Debian(及大多数 Linux 发行版)里,“定时器”通常指 systemd timer(最常见),也可能是 cron。下面分别说调试方法。


一、systemd timer 调试

1. 查看定时器状态

systemctl list-timers
systemctl list-timers --all

查看某个定时器:

systemctl status mytimer.timer
systemctl cat mytimer.timer

2. 手动测试(不等待触发)

sudo systemctl start mytimer.service

或:

sudo systemctl trigger mytimer.timer

3. 立即触发并看日志

journalctl -u mytimer.service -f
journalctl -u mytimer.timer -f

4. 打开调试日志

sudo SYSTEMD_LOG_LEVEL=debug systemctl start mytimer.timer

或临时改 service:

[Service]
Environment=SYSTEMD_LOG_LEVEL=debug

5. 检查时间计算是否正确

systemd-analyze calendar "*-*-* 03:00:00"
systemd-analyze timestamp "now"

6. 常见错误

  • .timer 里没写 WantedBy=timers.target
  • systemctl enable
  • OnCalendar 写错格式
  • service 里 Type=oneshot 没写

二、cron 调试

1. 查看 cron 日志(Debian)

sudo journalctl -u cron -f

或:

grep cron /var/log/syslog

2. 手动执行命令

/bin/bash -x /path/to/script.sh

3. 环境变量问题(最常见)

cron 环境极少:

* * * * * export PATH=/usr/local/bin:/usr/bin:/bin; /path/script.sh

4. 输出重定向

* * * * * /path/script.sh >> /tmp/cron.log 2>&1

三、快速排查清单

✅ timer 是否已 enable
✅ service 是否可手动运行
✅ journalctl 是否有报错
✅ 路径是否绝对路径
✅ 用户权限是否正确


如果你愿意,可以把 你的 timer / cron 配置 发出来,我可以直接帮你定位问题。

0