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 负责收集日志,而 rsyslog 或 syslog-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次失败登录

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

五、auditd -- 审计日志

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

  • 查看命令:ausearch、aureport。

  • 与 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 -f 或 tail -f /var/log/syslog

  • 检查暴力破解 :lastb 或 journalctl -u ssh | grep "Failed password"

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

相关推荐
非凡ghost36 分钟前
视频剪辑不用等渲染,这款开源工具让切分合并秒级完成
运维·电脑·软件需求
FII工业富联科技服务3 小时前
Omniverse 数字孪生与柔性自动化,如何破解产能与交付、设备与空间的双重困境?
运维·自动化·devops
润滑卫士3 小时前
油液介电常数在线监测:测量原理与油液老化状态评估方法
运维
Rock Chin6974 小时前
把 n8n 接进 Slack:在对话里 @机器人 触发自动化工作流
运维·机器人·自动化
浩浩测试一下4 小时前
Linux 底层知识点 1
linux·运维·服务器
Eloudy4 小时前
全文 - IMEX 第01节 -IMEX overview
运维·服务器·网络
物联网软硬件开发-轨物科技5 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
Escalating_xu5 小时前
【Linux 网络编程】TCP 跨平台实战:用 Windows 客户端访问 Linux 服务器
linux·服务器·网络
海宇数据5 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化
忆挽篱笙歌6 小时前
环境变量,本地变量
linux·运维·服务器