dmesg
dmesg 命令主要用来显示内核信息。使用 dmesg 可以有效诊断机器硬件故障或者添加硬件出现的问题。另外,使用 dmesg 可以确定您的服务器安装了哪些硬件。每次系统重启,系统都会检查所有硬件并将信息记录下来。执行/bin/dmesg 命令可以查看该记录,开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
[root@RedHat_test ~]# dmesg [-cn][-s <缓冲区大小>]
-c: 当完成打印显示后清除环缓冲内的内容。
-s: 缓冲区大小。定义一个大小为"缓冲区大小"的缓冲区用于查询内核环缓冲区。默认大小为 8196(此大小与 2.0.33 和 2.1.103 内核的默认syslog 缓冲区大小一致),如果你设置了一个大于默认值的环缓冲区,那你就可以用这个选项定义一个相当的缓冲区来查看完整的环缓冲区内容。
-n: 级别。设置级别为记录控制台启动信息的级别。比如,-n 1指的就是将此级别设为最低级,除了内核恐慌信息之外不会向控制台显示信息。所有级别的启动信息还将记录到/proc/kmsg,文件中,因此,syslogd(8)同样可以用来对信息的输出进行控制。当使用-n选项时,dmesg将不会 清除内核环缓冲区中的内容。当同时使用以上两个选项时,只有最后一个选项才会产生效果。
[root@RedHat_test ~]# dmesg > messages.txt
[root@RedHat_test ~]# dmesg | more
[root@RedHat_test ~]# dmesg | less
[root@RedHat_test ~]# dmesg -H
[root@RedHat_test ~]# dmesg -n 3
[root@RedHat_test ~]# dmesg | tail -f #打印输出最近一次的信息
[root@RedHat_test ~]# dmesg | head -20 #打印输出前20行的信息
[root@RedHat_test ~]# dmesg | tail -20 #打印输出最后20行日志
[root@RedHat_test ~]# watch "dmesg | tail -20"
[root@RedHat_test ~]# dmesg | grep DMA #查看硬盘的运行模式
[root@RedHat_test ~]# dmesg | grep eth #查看以太网的连接信息
[root@RedHat_test ~]# dmesg | grep sda #查看硬盘设备
[root@RedHat_test ~]# dmesg | grep ttyS* #查看串口的相关信息
[root@RedHat_test ~]# dmesg | grep -i memory #查看内存状况
[root@RedHat_test ~]# dmesg | grep -i usb #查看usb接口
[root@RedHat_test ~]# dmesg |egrep -i "(apm|acpi)" #探测系统内核模块,检测ACPI的加载情况
[root@RedHat_test ~]# dmesg >boot.messages
[root@RedHat_test ~]# mail -s "Boot Log of linux Server" public@web3q.net <boot.messages
[root@RedHat_test ~]# dmesg -c
关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。