dmesg 命令主要用来显示内核信息。使用 dmesg 可以有效诊断机器硬件故障或者添加硬件出现的问题。另外,使用 dmesg 可以确定您的服务器安装了哪些硬件。每次系统重启,系统都会检查所有硬件并将信息记录下来。执行/bin/dmesg 命令可以查看该记录,开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
2、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将不会 清除内核环缓冲区中的内容。当同时使用以上两个选项时,只有最后一个选项才会产生效果。
3、将系统启动信息保存到文件中
[root@RedHat_test ~]# dmesg >messages.txt
4、单页输出
[root@RedHat_test ~]# dmesg | more
[root@RedHat_test ~]# dmesg | less
5、以可读性较好的形式输出信息
[root@RedHat_test ~]# dmesg -H
6、设置记录信息的层级
[root@RedHat_test ~]# dmesg -n 3
7、打印输出内存
[root@RedHat_test ~]# dmesg | tail -f #打印输出最近一次的信息
[root@RedHat_test ~]# dmesg | head -20 #打印输出前20行的信息
[root@RedHat_test ~]# dmesg | tail -20 #打印输出最后20行日志
8、实时监控dmesg日志的输出信息
[root@RedHat_test ~]# watch "dmesg | tail -20"
9、搜索包含特定字符串的被检测到的硬件
[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的加载情况
10、将开机信息发邮件
[root@RedHat_test ~]# dmesg >boot.messages
[root@RedHat_test ~]# mail -s "Boot Log of Linux Server" public@web3q.net <boot.messages
11、打印并清除内核环形缓冲区
[root@RedHat_test ~]# dmesg -c
关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。
kernel会将开机信息存储在ring buffer中。若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。最简单的就是把下面的脚本放到crontab里去定期运行:
cat /var/log/dmesg >>/目录/dmesg.txt #将dmesg的信息重定向到dmesg.txt
>/var/log/dmesg #清空dmesg文件。
百度里也有其他定期读取dmesg并保存的脚本。比较复杂。你也可以参考一下。
http://blog.csdn.net/zybasjj/article/details/8231923
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)