1

分享 Linux 中容易被遗忘的故障排除工具

 2 years ago
source link: https://os.51cto.com/article/707159.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
分享 Linux 中容易被遗忘的故障排除工具-51CTO.COM
分享 Linux 中容易被遗忘的故障排除工具
作者:聆听世界的鱼 2022-04-22 11:16:35
dmesg 是一个显示消息命令,用于在 Linux系统上显示与内核相关的消息。它用于控制内核环形缓冲区。输出包含设备驱动程序产生的消息。

65313ce4371e0a8b34f603f188027bf772a7e5.jpg

dmesg 命令的用法:

当我们执行命令“dmesg”时,会显示从内核环形缓冲区接收到的所有消息,这里只显示最新的消息。这用于检查存储在内核环形缓冲区中的消息。在非 root 用户的情况下,使用“sudo”运行 root 级别的命令而不是 root。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg

8882bcb39e39baac345723d68b3ff931571a69.jpg

虽然我们使用 dmesg 命令它会提供大量输出,但我们可以使用 tail、head 或 less 命令来查看日志页面。在正斜杠“/”的帮助下搜索您选择的特定日志或术语,以在更少 的范围内搜索。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | less

b85639916e1241c97345439d16cbdcca5b4fbc.jpg

dmesg 默认提供彩色输出,如上所示,但如果您想对其进行着色以正确理解消息,则可以使用“L”命令对其进行着色。  

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -L

dmesg 以秒和纳秒为单位使用时间戳,对于人性化的格式,使用时间戳的“H”选项。同样在less中显示。在时间戳中,它显示日期和时间。每分钟发生的消息被标记为秒和纳秒。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -H

f3736ee3885c1a43fe5504d6823e86bfe8e484.jpg

我们使用-T(友好的显示)选项,因为它们以标准日期和时间显示。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -T

d66492d49f65c4f6f0715099d1f6bfc11ace5e.jpg

监控实时日志–follow选项与 dmesg 一起使用,它在终端底部显示最近的消息。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg --follow

f9faa0c8691cfe280b0590f158c54408ee5f87.jpg

正如我们看到的 dmesg 给出的大输出,我们可以使用 tail 或 head 选项列出特定数量的消息并查看它们。在这里,我们使用head 选项检查前 10 条消息。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | head -10

2960637720f1e1938b5274d930be9a12756def.jpg

最后 10 条消息使用tail 选项显示。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | tail -10

在这里,我们将使用-i(忽略)选项通过扫描 dmesg 输出来搜索特定的字符串或模式或消息,但此选项将忽略字符串的大小写并仅关注我们搜索的字符串。在结果中,它将显示“USB”和“usb”组合的消息。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | grep -i usb

e24064b39c272f036e38703236990eb6152e4c.jpg

使用带有 dmesg 的 grep 命令搜索与内存、RAM、硬盘或 USB 驱动器相关的消息。这里 grep 与“sda”一起使用来检查内核检测到了哪些硬盘。sda 命令用于检查硬盘,并将在列出 sda 的任何位置显示消息。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | grep -i sda

1727b0546c8e60925b9797e4e78d2328e2c790.jpg

每个记录到内核环形缓冲区的消息都被分配一个级别。层次代表了信息在交流中的重要性。级别如下:

  • emerg:系统无法使用。
  • alert:必须立即采取行动。
  • crit:临界条件。
  • err:错误条件。
  • warn:警告条件。
  • notice:正常但重要的情况。
  • info:信息。
  • debug:调试级消息。

使用带有 dmesg -l(级别)选项提取消息,后跟级别的名称。在这里,我们使用 dmesg 命令列出所有使用级别“info”的信息消息,它们将显示需要和重要的通知。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -l info

要提取具有多个日志级别的消息,我们必须组合两个或多个日志级别。在这里,我们使用“debug 和 notice”日志级别来提取消息。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -l debug,notice

915616b911f6262ea8d287a8a0a4857df4bd65.jpg

组合多个日志级别的另一个示例是“err 和 warn”,它将显示错误日志和警告日志。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg --level=err,warn

显示eth0 用户界面的 dmesg 消息使用 grep 选项后跟eth0。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg | grep -i eth0

96ac6cb7655547b2641609ea3d2649de95156c.jpg

使用 facility 选项 -f过滤 dmesg 消息,它将显示特定工具“守护程序daemon”的消息。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -f daemon

66fd7f252eadb94d4e9719bdec1ea932df734b.jpg

-x(解码)选项用于易于阅读的格式将设施和级别显示为每行的前缀。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo dmesg -x

24bb8d614094873264f805cea46e2424616dae.jpg

Linux dmesg(英文全称:display message)命令用于显示开机信息。

kernel 会将开机信息存储在 ring buffer 中。您若是开机时来不及查看信息,可利用 dmesg 来查看。开机信息亦保存在 /var/log 目录中,名称为 dmesg 的文件里。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK