当前位置:操作系统 > Unix/Linux >>

检测Linux硬件状态

作者:曹江华

  来源:赛迪网-开放系统世界

  计算机系统是由软件系统和硬件系统共同组成的。检测硬件状态对于保障整个系统的稳定是非常重要的。不论操作系统是使用Linux、还是Windows,一旦硬件出现故障,那么整个系统的安全就严重了。这里我们主要针对运行Linux的计算机系统的CPU、硬盘、内存进行检测。

  中央处理器状态的检测

  中央处理器是Linux主机的核心硬件。我们看一下Linux根目录下:/proc目录的内容。这个目录中的文件其实不是存放在磁盘上的。该目录的文件系统叫做proc文件系统,是系统内核的映像。也就是说该目录里面的文件是存放在系统内存里面。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息(如进程)是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

  CPU的信息存放在“cpuinfo”文件中。我们也可以使用以下命令来查看:

  #cat /proc/ cpuinfo

  以下以笔者的AMD Athlon 1100为例:

  processor : 0

  vendor_id : Authentic AMD

  cpu family : 6

  model : 7

  model name : AMD Athlon(tm) Processor

  stepping : 0

  cpu MHz : 1100.046

  cache size : 64 KB #缓存容量#

  fdiv_bug : no # 没有BUG#

  hlt_bug : no # 没有BUG#

  f00f_bug : no # 没有BUG#

  coma_bug : no # 没有BUG#

  fpu : yes

  fpu_exception : yes

  cpuid level : 1

  wp : yes

  flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov

  pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow

  bogomips : 2195.45

  一定要确保CPU硬件没有BUG,并且被系统认别出具体型号。以上只是显示CPU的基本情况,对于实时情况我们使用mbmon软件检测CPU,

  1.软件下载:http://www.nt.phys.kyushu- u.ac.jp/shimizu/download/xmbmon203.tar.gz,http://www.nt.phys.kyushu- u.ac.jp/shimizu/download/README-xmbmon203.html。

  软件下载后先看一下:

  README-xmbmon203pl1.html

  查看一下软件是否支持你的主板芯片。

  2.安装软件:

  gunzip xmbmon203.tar.gz

  tar xmbmon203.tar

  cd xmbmon203

  ./configure;make;make install

  3.运行软件:<BR>mbmon可以工作在命令行和X窗口下,首先查看一下笔者的主板:

  <ccid_nobr>

  <table width="400" border="1" cellspacing="0" cellpadding="2"

  bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">

  <tr>

  <td bgcolor="e6e6e6" class="code" style="font-size:9pt">

  <pre><ccid_code> ./mbmon-d

  Using VIA686 HWM directly!!

  * VIA Chip VT82C686A/B found.

  上面内容表示显示主板芯片是威盛的VT82C686A/B。下面在命令行下运行。

  ./mbmon

  Temp.= 42.1, 33.0, 24.2; Rot.= 5357, 0, 0

  Vcore = 1.78, 3.11; Volt. = 3.41, 4.93, 12.19, 0.00, 0.00

  上面显示了中央处理器温度为42.1,电源温度为33.0,主板温度为24.2;CPU风扇转速为5357转/分钟;CPU核心电压为1.78伏特,输入电压为12.19伏特、3.41伏特, 4.93伏特。缺省情况下,以上内容五秒钟更新一次记录。

  Mbmon在X窗口下运行,运行结果如图1所示。

  ./xmbmon

  图1 mbmon在X窗口下运行

  4.远程监控

  Mbmon最新版本还提供远程监控的功能:

  ./mbmon-p 22

  其中“-P 22”表示打开端口22,这样你就可以使用Telnet、SSH等远程工具连接Linux主机来检测CPU状态了。

  硬盘磁道检测

  硬盘物理坏道是硬盘的所有Linux硬件故障中最让人头痛的。它轻则使你的Linux计算机频频死机,重则让你的所有数据化为乌有。现在出厂的硬盘(1993年以后)基本上都支持SMART(Self Monitoring Analysis and Reporting Technology)自动检测分析及报告技术。SMART技术可以对硬盘的磁头单元、盘片电机驱动系统、硬盘内部电路以及盘片表面介质材料等进行监测。当SMART监测并分析出硬盘可能出现问题时,会及时向用户报警以避免计算机数据受损失。SMART技术必须在主板支持的前提下才能发生作用,而且 SMART技术也不能保证能预报所有可能发生的硬盘故障。SMART(SFF-8035i)是硬盘生产商们建立的一个工业标准。这个标准就是在硬盘上保存一个跟执行情况、可靠程度、读找错误率等属性的表格。所有属性都有一个1byte(大小范围1-253)的标准化值,还包含另一个1byte的关键阶段值。如果属性表格内某个数据接近小于或达到关键阶段值,表明硬盘工作不正常了。

  Smartmontools是一个Linux下硬盘检测工具,主页为http: //smartmontools.sourceforge.net,下载链接:ftp: //fr2.rpmfind.net/linux/sourceforge/smartmontools/smartmontools-5.1-18.i386.rpm。

  1.软件安装:

  rpm-ivh/smartmontools-5.1-18.i386.rpm

  软件安装后会在/usr/local/ 目录下产生程序:smartctl,先检测硬盘和主板是否支持SMART技术(见图2)。

  smartctl -i /dev/hda7

  图2 检测硬盘是否支持SMART

  图2显示笔者的硬盘支持SMART,型号是:ST320414A(希捷的酷鱼III,72000RPM,2兆缓存)。

  2.全面检测硬盘

  运行以下硬盘检测命令:

  smartctl -A /dev/hda7

  图3 硬盘物理逻辑状态

  图3是检测到的硬盘信息,其显示的信息根据你的硬盘厂商不同而不同,其中1-202行代表硬盘的不同物理性能,纵列代表硬盘的逻辑状态。

  FLAG是标记,标准数值(VALUE)应当小于或等於关键值(THRESH)。WHEN_FAILED 代表错误信息,图3中的WHEN_FAILED纵行是空行,说明硬盘没有故障。如果WHEN_FAILED显示数字,表明硬盘磁道可能有比较大的坏道。

  Smartctl有十几个参数,详细情况可以下面的命令查看:

  smartctl --help

  3.高级应用

  我们可以用crontab命令实现每天定时的扫描:

  (1)首先建立一个文件,文件名称Linuxect(名称自己设定):

  #crontab -e

  (2) 文件内容:

  05 16 * * 5 smartctl -A /dev/hda7

  用vi编辑后存盘退出。使用crontab命令添加到任务列表中:

  #crontab Linuxect

  这样系统内所有用户在每个星期五的16点05分会自动进行扫描。

  内存检测

  通常我们会觉得内存出错损坏的几率不大,并且认为如果内存坏了,那么它是不可能通过主板BIOS的开机自检程序的。事实上这个自检程序的功能很少,而且只是检测容量速度而已,许多内存出错的问题并不能检测出来。如果你在运行程序时不时有某个程序莫名其妙地失去响应;打开文件时偶尔提示文件损坏,但稍后打开又没问题……那你应该考虑检测一下你的内存了。

  1.使用Linux命令检测

  (1)在命令行使用“Free”命令可以监控内存使用情况

  #free

  total used free shared buffers cached

  Mem: 256024 192284 63740 0 10676 101004

  -/+ buffers/cache: 80604 175420

  Swap: 522072 0 522072

  上面给出了一个256MB的RAM和512MB交换空间的系统情况。

  (2)使甩vmstat命令监视虚拟内存使用情况:

  # vmstat

  procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

  r b swpd free buff cache si so bi bo in cs us sy id wa

  1 0 0 63692 10704 101008 0 0 239 42 126 105 48 45 7 0

  Vmstat()命令是一个通用监控程序,是Virtual Meomory Statistics(虚拟内存统计)的缩写。如果使用Vmstat命令的时候没有使用它的任何命令行参数,你将得到一个一次性的报告。Vmstat命令报咨的主要的活动类型有进程(procs)、内存(以千字节为单位)、交换分区 (以千字节为单位)、来自块设备(硬盘驱动器)的输入输出量、系统中断(每秒钟发生的次数)、中央处理单元(CPU)分配给用户系统和空闲时所分别占用比例。

  2.使用工具软件检测

  Memtest86是一款免费的内存测试软件,测试准确度比较高,内存的隐性问题也能检查出来。可以到http://www.memtest86.com/页面下载
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,