温馨提示×

Debian定时器如何查看日志

小樊
42
2026-07-30 09:25:22
栏目: 智能运维

在 Debian(以及大多数 Linux 系统)中,**定时器(timer)**通常指 systemd timer。查看其日志的方法如下:


一、查看 systemd timer 的执行日志

1️⃣ 查看定时器本身状态

systemctl status your-timer.timer

可以看到:

  • 是否启用
  • 上次触发时间
  • 下次触发时间
  • 是否关联了某个 .service

2️⃣ 查看定时器触发的服务日志(最常用 ✅)

定时器一般会触发一个 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

3️⃣ 查看定时器的 systemd 日志

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"

三、查看所有定时器执行记录(排查用)

查看所有 systemd timer

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"

权限问题

  • timer 是否以 root 运行
  • 脚本是否有执行权限
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 文件内容贴出来,我可以帮你精确分析为什么没执行或日志看不到。

0