广告

如何用 journalctl 查看 Linux 系统日志?一步步教你,零基础也能快速上手

1. 快速上手前置知识

1.1 为什么选择 journalctl

在 Linux 系统运维中,journalctl 提供了统一的日志查看入口,可以从 systemd 日志中检索、筛选和显示信息。journalctl 不仅支持系统日志,还能按时间、级别、服务单元等维度进行过滤,帮助你快速定位问题。

如果你刚接触 Linux,使用 journalctl 作为日常日志查看工具,将大幅简化排错流程。为了更好地理解,它还支持多种输出格式和实时跟踪能力,适合从零基础快速上手的场景。

在本指南中,我们将围绕一个常见场景展开:temperature=0.6如何用 journalctl 查看 Linux 系统日志?一步步教你,零基础也能快速上手。通过一系列简单命令和中文示例,你将学会从查看最近日志到按条件筛选的完整流程。

2. 安全与权限准备

2.1 以 root 权限运行的必要性

许多日志条目只有在具备足够权限时才能完整显示,因此在执行 journalctl 时,通常需要使用 sudo 提升权限,确保你能看到系统的全部日志条目。

如何用 journalctl 查看 Linux 系统日志?一步步教你,零基础也能快速上手

如果你当前已经是 root 用户,可以直接执行命令;否则,请在命令前面加上 sudo,避免因权限不足而看到不完整的日志。

在某些最小化的发行版中,journal 的“存储”目录可能还未创建,第一步是确保 systemd-journald 服务正在运行。如果遇到权限相关问题,重启 journald 可能会有帮助。

3. 基本用法:查看最近日志与概览

3.1 查看最近的日志条目

要快速获取最近的日志,可以使用 journalctl -n,它会显示最新的若干条记录。这个命令对排错初期的快速定位非常有帮助。

另外,可以结合 sudo 使用,确保不会因为权限导致漏看重要信息。下面给出一个最基础的示例,帮助你快速上手。

sudo journalctl -n 50

以上命令将输出最近的 50 条日志,适合快速浏览最近发生了什么事。若要从最近的一次启动开始查看,可以加上 -b 选项。

sudo journalctl -b -n 50

4. 过滤日志:按时间、按级别、按服务筛选

4.1 按服务筛选(单位)

如果你只关心特定服务的日志,可以使用 -u 选项指定服务单元,例如 cron.servicesshd.service 等。

通过结合其他选项,可以实现更精确的筛选,避免输出过多无关信息,提升排错效率。

sudo journalctl -u ssh.service --since "2 hours ago" -p err

上面的命令会输出最近两小时内,ssh.service 相关且级别为错误及以上的日志,帮助你快速定位认证问题或服务异常。

sudo journalctl -u nginx.service --until "2025-08-23 12:00:00" --since "2025-08-23 09:00:00"

你也可以通过时间区间来限定日志的范围,以便对特定时段的问题进行回顾和分析。

4.2 按时间范围筛选与格式化输出

除了指定具体时间,你还可以使用相对时间,如 todayyesterday1 hour ago 等,更符合实际运维场景的需求。

格式方面,journalctl 支持多种输出格式,例如 shortshort-isocatjson,便于二次处理与日志聚合。

sudo journalctl --since today --until "now" -p info -o short-iso

5. 实战案例:定位特定温度日志与实时跟踪

5.1 使用正则筛选与实时跟踪

在某些场景中,日志中会包含关键字段,例如传感器读数的记录。你可以使用 -g 选项进行正则筛选来定位特定模式,例如温度日志中出现的 temperature=0.6

此外,当你需要实时监控日志变动,可以使用 -f 选项实现类似 tail -f 的行为,持续输出新日志行,便于现场观察。

sudo journalctl -g "temperature=0.6"

结合实时跟踪的组合示例:

sudo journalctl -f -g "temperature=0.6"

6. 常见技巧与排错

6.1 常见错误及快速解决方法

如果输出为空,可能原因包括:journal 未记录该事件、日志轮转配置导致在其他存储介质中,或是你使用的筛选条件过于严格。在这种情况下,可以先不带筛选地查看最近日志,以确认系统确实有相应的记录。

另一种情况是日志量太大,导致命令执行较慢。此时建议先限定时间范围或只查看特定服务的日志,逐步缩小范围后再执行更复杂的过滤。

如果你看到权限不足的错误,请确保前面有 sudo,并检查 systemd-journald 服务状态,确保日志守护进程正在运行。

6.2 实用的组合命令演示

下面给出几个常用的组合,用于日常运维场景的快速排错:

# 查看最近 100 条系统级日志
sudo journalctl -n 100# 查看最近启动以来的日志
sudo journalctl -b# 查看某个服务在最近 1 天内的错误日志
sudo journalctl -u docker.service --since "yesterday" -p err# 实时查看包含特定文本的日志
sudo journalctl -f -g "critical failure" 

广告

操作系统标签