Linux 系统中常用的日志查看命令

一、dmesg -- 内核环形缓冲区日志

dmesg 用于**查看内核环形缓冲区(kernel ring buffer)**中的消息,主要包括:

  • 内核启动过程中的信息

  • 硬件检测(PCI、USB、硬盘等)

  • 驱动加载与报错

  • 内核 panic、OOM(内存不足)等严重错误

  • 热插拔事件(如插入 U 盘)

常用示例

bash

复制代码
# 查看所有内核消息
dmesg

# 分页查看
dmesg | less

# 只显示最后 20 行
dmesg | tail -20

# 实时跟踪新内核消息(类似 tail -f)
dmesg -w

# 清空环形缓冲区(需要 root)
sudo dmesg -c

# 用时间戳(可读格式)
dmesg -T

特点

  • 仅包含内核空间的消息,不包含普通用户进程的日志。

  • 环形缓冲区大小固定,早期消息会被覆盖。

  • 重启后丢失(除非通过 rsyslog 等写入文件)。

  • 非常适用于硬件诊断、驱动问题、内核崩溃调试。

二、journalctl -- systemd 日志系统(涵盖面最广)

journalctl 可以查看:

  • 内核消息(等同于 dmesg 的内容,通过 journalctl -k

  • 所有系统服务的 stdout/stderr

  • 用户服务的日志

  • 登录会话、授权信息等

dmesg 的关系

  • journalctl -k 显示的内核日志 来源与 dmesg 相同(都是从内核 ring buffer 读取),但 journal 可以持久化存储、按时间过滤、同时查看其他服务日志。

  • dmesg 更轻量,适合快速查看内核当前状态(如 dmesg | grep error);journalctl -k 适合结合时间范围和 -b 查看历史启动的内核日志。

三、传统文本日志 -- /var/log/ 下的文件

在非 systemd 系统或部分日志仍保留文本文件的系统中,常见文件包括:

文件路径 内容
/var/log/messages 通用系统消息(很多发行版仍用)
/var/log/syslog Debian/Ubuntu 的传统系统日志
/var/log/auth.log 认证与安全相关日志(登录、sudo、ssh)
/var/log/kern.log 内核日志(通常由 rsyslog 从 dmesg 转储)
/var/log/dpkg.log / /var/log/yum.log 包管理器日志

查看方式

bash

复制代码
# 实时跟踪系统日志
tail -f /var/log/syslog

# 搜索错误
grep -i error /var/log/messages

# 分页查看认证日志
less /var/log/auth.log

journalctl 的关系

  • 在 systemd 系统中,systemd-journald 负责收集日志,而 rsyslogsyslog-ng 可以作为转发器将 journal 内容再写入文本文件,以兼容传统工具。

  • 如果系统同时运行 rsyslog,则 /var/log/ 下仍然有文本日志,但 journalctl 内容更全面、过滤更方便。

四、last / lastb -- 登录日志

  • last:显示 /var/log/wtmp 文件,记录成功登录的历史。

  • lastb:显示 /var/log/btmp,记录失败登录尝试(常用于安全检查)。

bash

复制代码
last -n 10          # 最近10次成功登录
lastb -n 5          # 最近5次失败登录

这些不属于 journalctldmesg 的范围,但也是重要的系统日志来源。

五、auditd -- 审计日志

  • auditd 服务管理,记录系统调用、文件访问、权限变更等安全相关事件

  • 查看命令:ausearchaureport

  • journalctl 独立,但可配置将审计日志导入 journal。

六、总结对比表

命令/工具 日志范围 持久化 适用场景
dmesg 仅内核环形缓冲区 内存中,重启丢失 硬件故障、驱动调试、内核 crash
journalctl 内核 + 所有服务 + 用户会话 可持久化(需配置) 系统与服务全面排查,推荐首选
tail /var/log/syslog 仅文本日志(通常是系统日志子集) 兼容旧习惯,文本处理方便
last / lastb 登录成功/失败记录 安全检查,审计登录
ausearch 审计事件(系统调用、文件监控) 是(需配置 auditd) 合规审计、入侵检测

七、建议

  • 快速看内核硬件信息dmesg | grep -i error

  • 排查服务启动失败journalctl -u 服务名 -n 50

  • 查看本次启动所有异常journalctl -b -p err

  • 实时监控系统整体日志journalctl -ftail -f /var/log/syslog

  • 检查暴力破解lastbjournalctl -u ssh | grep "Failed password"

在现代 systemd 发行版(如 RHEL 7+、CentOS 7+、Ubuntu 16.04+、Debian 8+)中,journalctl 是最强大、最全面的日志查看工具 ,但 dmesg 和传统文本日志在特定场景下依然有不可替代的便捷性。建议熟练掌握 journalctl 的基本过滤,同时知道 dmesg 用于硬件诊断。

相关推荐
rcms152702692189 小时前
METSO A413248自动化系统
运维·自动化
Aipollo10 小时前
从Nginx到AI网关:网关技术的演进之路
运维·人工智能·nginx
雨的旋律209910 小时前
rsync-daemon + lsyncd实现文件近实时备份
linux·运维·服务器
JP-Destiny10 小时前
linux-安装Ubuntu的docker
linux·ubuntu·docker
EasyCVR11 小时前
从连锁门店到城市级项目,国标GB28181视频监控平台EasyCVR的全场景适配能力有多绝?
运维·网络·音视频
IMPYLH11 小时前
Linux 常用命令列表
linux·运维·服务器·bash
施努卡机器视觉11 小时前
SNK施努卡驱动机构总成半自动装配线:人工与自动化协同解决方案
运维·自动化
空荡forevere11 小时前
Linux文件系统(三)
linux·运维·系统架构·操作系统
lcreek11 小时前
Kali Linux WSL 中文输入法完整安装指南
linux·wsl·中文输入法