查看服务日志的核心方法是使用 journalctl -u 指定服务名,例如 journalctl -u nginx.service 查看 nginx 服务日志;1. 使用 -n 参数可显示最近 n 行日志,如 journalctl -u nginx.service -n 100 查看最近 100 行;2. 使用 -f 参数可实时跟踪日志输出,如 journalctl -u nginx.service -f;3. 使用 -b 查看本次开机以来的日志,–since 和 –until 可指定时间范围,如 journalctl -u nginx.service –since yesterday 或精确时间段;4. 可结合 -p 过滤日志等级,如 journalctl -u nginx.service -p err 只显示错误及以上级别日志;5. 其他技巧包括用 systemctl list-units –type=service 确认服务名、–no-pager 避免分页、-r 反转显示顺序,掌握这些命令即可满足日常服务日志查看需求。
查看服务日志是系统管理和故障排查的常规操作,
journalctl
是 systemd 系统中查看和管理日志的核心工具。它功能强大,使用起来也比较直观。
核心方法:通过服务单元名称查看日志
最常用也最直接的方式是使用
-u
参数指定服务名。例如,要查看 Nginx 服务的运行日志,可以执行:
journalctl -u nginx.service
这条命令会输出 Nginx 服务自启动以来的所有日志条目。如果你只关心最近的几条,可以加上
-n
参数:
# 只看最近100行日志 journalctl -u nginx.service -n 100
如果想实时监控某个服务的日志输出,就像
tail -f
那样,可以加上
-f
参数:
# 实时跟踪 Nginx 日志 journalctl -u nginx.service -f
按时间范围过滤
日志量大时,限定时间范围能快速定位问题。journalctl 支持多种时间格式:
- 查看本次开机以来的日志:
journalctl -u nginx.service -b
- 查看昨天的日志:
journalctl -u nginx.service --since yesterday
- 查看指定时间段的日志:
journalctl -u nginx.service --since "2025-08-05 10:00:00" --until "2025-08-05 12:00:00"
结合其他字段精确过滤
除了服务名,还可以结合进程 ID、日志等级等进行过滤。
- 按进程 ID 查看日志:
journalctl _PID=1234
- 查看特定日志等级(如错误级别):
# 只看错误和更严重级别的日志 journalctl -u nginx.service -p err
其他实用技巧
- 如果你不确定服务的完整名称,可以先用
systemctl list-units --type=service
查看所有正在运行的服务。
- 使用
--no-pager
参数可以避免日志输出进入分页器,方便在脚本中处理。
- 日志默认按时间倒序显示,加上
-r
参数可以反转顺序,最新的日志会最先显示。
基本上就这些,掌握
-u
、
-f
、
-n
、
-b
和时间过滤这几个关键点,日常查看服务日志就足够用了。