Linux诊断机器故障工具—dmesg命令

Linux诊断机器故障工具—dmesg命令,第1张

1、简介

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

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

top命令动态地监视进程活动与系统负载等信息。

使用示例:

效果如下图:

以上命令输出视图中分为两个区域,一个统计信息区,一个进程信息区。

统计信息区:

第一行信息依次为:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。

第二行信息依次为:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

第三行信息依次为:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。

第四行信息依次为:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。

第五行信息依次为:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、预加载内存量。

进程信息区:

按 q 键退出监控页面。

uptime 用于查看系统的负载信息。

使用示例:

查看系统的负载信息。

效果如下图:

输出说明:

当前服务器时间:11:06:57

当前服务器运行时长:59 min

当前用户数:1 users

当前负载情况:load average: 0.00, 0.04, 0.08(分别取1min,5min,15min的均值)

free用于显示当前系统中内存的使用量信息。

命令语法: free [-bkmotV][-s <间隔秒数>]

参数说明:

使用示例:

显示当前系统中内存的使用量信息。

效果如下图:

输出说明:

ifconfig命令用于获取网卡配置与网络状态等信息。

使用示例:

获取网卡配置与网络状态等信息。

效果如下图:

输出说明:

第一部分的第一行显示网卡状态信息。

eth0表示第一块网卡。

UP代表网卡开启状态。

RUNNING代表网卡的网线被接上。

MULTICAST表示支持组播。

第二行显示网卡的网络信息。

inet(IP地址):172.16.67.50。

netmask(掩码地址):255.255.0.0。

broadcast(广播地址):172.16.255.255。

RX表示接收数据包的情况,TX表示发送数据包的情况。

lo表示主机的回环网卡,是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。与回环地址(127.0.0.0/8 或 ::1/128)不同,回环网卡对系统显示为一块硬件。任何发送到该网卡上的数据都将立刻被同一网卡接收到。

有时有必要找到当前Linux引导磁盘路径。linux引导磁盘路径可以用于任何问题的故障诊断。这个引导分区或路径包含GRUB配置的Linux引导装载程序。用fdisk找到当前Linux引导磁盘路径。

如果你装有多个硬盘在你的服务器上,会非常困难找到你的当前引导磁盘路径。例如:fidisk -l 会输出一长串信息,如果您有多个硬盘驱动器。

[root@RHEL2 ~]# fdisk -l |grep Disk Disk /dev/sda: 21.5 GB, 21474836480 bytes Disk identifier: 0x000542e1 Disk /dev/sdb: 12.9 GB, 12884901888 bytes Disk identifier: 0xc237894b Disk /dev/mapper/vg_rhel2-lv_root: 16.7 GB, 16718495744 bytes Disk identifier: 0x00000000 Disk /dev/mapper/vg_rhel2-lv_swap: 4227 MB, 4227858432 bytes Disk identifier: 0x00000000 [root@RHEL2 ~]#

获取唯一的信息,你需要优化调整你的命令语句:

[root@RHEL2 ~]# fdisk -l |grep dev|grep "*" /dev/sda1 * 1 64 512000 83 Linux [root@RHEL2 ~]#

上面的“*”表示linux 当前引导磁盘路径,这里是/dev/sda1。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7192851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存