在 Debian(以及大多数 Linux 系统)中,**定时器(timer)**通常指 systemd timer。查看其日志的方法如下:
systemctl status your-timer.timer
可以看到:
.service定时器一般会触发一个 service,例如:
your-timer.timer → your-service.service
查看该 service 的日志:
journalctl -u your-service.service
查看最近 50 行:
journalctl -u your-service.service -n 50
实时查看:
journalctl -u your-service.service -f
journalctl -u your-timer.timer
这里通常只记录 timer 的启动、触发事件,不包含业务日志。
journalctl -u your-service.service --since today
journalctl -u your-service.service --since "2025-01-01 08:00" --until "2025-01-01 10:00"
systemctl list-timers
journalctl -t systemd-timedated
或更通用:
journalctl | grep timer
如果 service 里执行的是 shell 脚本,建议:
✅ 在脚本中显式输出日志
#!/bin/bash
echo "$(date) script start" >> /var/log/my-script.log
✅ 或使用 logger:
logger -t my-script "task executed"
然后查看:
journalctl -t my-script
systemctl list-timers
systemctl status your-timer.timer
journalctl -u your-service.service --since "1 hour ago"
chmod +x /path/to/script
| 目的 | 命令 |
|---|---|
| 查看 timer 状态 | systemctl status xxx.timer |
| 查看触发服务日志 | journalctl -u xxx.service |
| 实时日志 | journalctl -u xxx.service -f |
| 按时间查看 | journalctl --since today |
| 所有定时器 | systemctl list-timers |
如果你愿意,可以把 timer 和 service 文件内容贴出来,我可以帮你精确分析为什么没执行或日志看不到。