GA黄金甲

你真的会调试 Linux 内核故障吗,看完这一篇后你会茅塞顿开的!

Linux内核是操作系统的焦点,它控制对系统资源(例如:CPU、I/O装备、物理内存和文件系统)的会见。在指导历程中以及系统运行时,内核会将种种新闻写入内核环形缓冲区。这些新闻包括有关系统操作的种种信息。

内核环形缓冲区是物理内存的一部分,用于生涯内核的日志新闻。它具有牢靠的巨细,这意味着一旦缓冲区已满,较旧的日志纪录将被笼罩。

dmesg下令行适用程序用于在Linux和其他类似Unix的操作系统中打印和控制内核环形缓冲区。关于检查内核启动新闻和调试与硬件相关的问题很有用。

在本教程中,我们将先容dmesg下令的基础。

使用 dmesg 下令

dmesg下令的语法如下:

dmesg [OPTIONS]
在不带任何选项的情形下挪用时,dmesg将所有新闻从内核环形缓冲区写入标准输出:

登录后复制

$ dmesg

默认情形下,所有用户都可以运行dmesg下令。可是,在某些系统上,非 root 用户可能会限制对dmesg的会见。在这种情形下,挪用 dmesg 时您将收到如下过失新闻:

dmesg: readkernel buffer failed: Operation not permitted

内核参数kernel.dmesg_restrict指定非特权用户是否可以使用dmesg审查来自内核日志缓冲区的新闻。要删除限制,请将其设置为零:

$ sudo sysctl -w kernel.dmesg_restrict=0

通常,输出包括许多信息行,因此只能看到输出的最后一部分。要一次审查一页,请将输出通过管道传送到分页适用程序,例如less或more:

$ dmesg –color=always | less

其中的–color=always参数用于保存彩色输出。

若是要过滤缓冲区新闻,可能使用grep。例如,要仅审查与 USB 相关的新闻,请键入:

$ dmesg | grep -i usb

dmesg 从/proc/kmsg虚拟文件中读取内核天生的新闻。该文件提供了到内核环形缓冲区的接口,并且只能由一个历程翻开。若是系统上正在运行syslog历程,并且你实验使用cat或less下令读取文件,则下令将挂起。

syslog守护程序将内核新闻转储到/var/log/dmesg,因此你也可以使用该日志文件:

$ cat /var/log/dmesg

名堂化 dmesg 输出。

dmesg下令提供了许多选项,可资助你名堂化和过滤输出。

dmesg中最常用的选项之一是-H(–human),它将输出更容易读的效果。

$ dmesg -H

要打印人类可读的时间戳,请使用-T(–ctime选项):

$ dmesg -T
[Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

登录后复制

时间戳名堂也可以使用–time-format 选项设置,可以是ctime,reltime,delta,notime或iso。例如:要使用增量名堂,你可以输入:

$ dmesg –time-format=delta

你也可以组合两个或多个选项:

$ dmesg -H -T

要实时寓目dmesg下令的输出,请使用-w(–follow)选项:

$ dmesg –follow

过滤 dmesg 输出。

你可以将dmesg输出限制为给定的设施和品级。dmesg支持以下类型:

kern-内核新闻

user-用户级新闻

mail-邮件系统

daemon-系统守护程序

auth-清静/授权新闻

syslog-内部 syslogd 新闻

lpr-行式打印机子系统

news-网络新闻子系统

-f(–facility )选项允许你将输出限制为特定的装备,该选项接受一个或多个逗号脱离的功效。

例如,要仅显示内核和系统守护程序新闻,可以使用:

$ dmesg -f kern,daemon

每条日志新闻都与一个显示新闻主要性的日志级别相关联,dmesg支持以下日志级别:

emerg-系统无法使用

alert-必需连忙接纳步伐

crit-紧迫情形

err-过失条件

warn-忠言条件

notice-正常但主要的条件

info-信息性

debug-调试级新闻

-l(–level )选项允许你将输出限制为界说的级别,该选项接受一个或多个逗号脱离的级别。以下下令仅显示过失和严重新闻:

$ dmesg -l err,crit

扫除环形缓冲区

-C(–clear)选项可让您扫除环形缓冲区:

$ sudo dmesg -C

只有root或具有sudo特权的用户才华扫除缓冲区。

要在扫除之前打印缓冲区内容,请使用-c(–read-clear)选项:

$ sudo dmesg -c

若是要在扫除文件之前将目今dmesg日志生涯到文件中,你可以将输出重定向到文件:

$ dmesg > dmesg_messages

结论

dmesg下令允许你审查和控制内核环形缓冲区。对内核或硬件问题举行故障扫除时,它很是有用。

在终端中输入man dmesg,你可以获取有关所有可用dmesg选项的信息。

以上就是你真的会调试 Linux 内核故障吗,看完这一篇后你会茅塞顿开的!的详细内容,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理,版权争议与本站无关,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度,请读者仅做参考。本文接待转载,转载请说明来由。若您以为本文侵占了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您连忙联系GA黄金甲实时修正或删除。

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节沐日休息

QR code
【网站地图】【sitemap】