计算机系统是由软件系统和硬件系统共同组成的。检测硬件状态对于保障整个系统的稳定是非常重要的。不论操作系统是使用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,

软件下载后先看一下:

README-xmbmon203pl1.html

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

2.安装软件: gunzip xmbmon203.tar.gz

tar xmbmon203.tar

cd xmbmon203

./configure;make;make install

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

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

  ./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的关键阶段值。如果属性表格内某个数据接近小于或达到关键阶段值,表明硬盘工作不正常了。

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/页面下载它的最新3.0版本。

软件安装: # tar xzvf memtest86-2.5.tar.gz

# cd memtest86-2.5

# make

然后,将一张 3.5 英寸空白磁盘插入到软盘驱动器,并输入:

# make install

重新启动计算机,在BIOS中设定用软驱启动即可,软件运行界面见图4。

图4 Memtest86软件运行界面

图4中可以看到当前系统所采用的处理器型号:AMD-Duron和频率:1056,以及CPU的一级缓存(128k)和二级缓存(64k),系统物理内存的容量(64)和速度(315MB/s)。最后显示的是主板所采用的芯片组类型。在系统信息的右侧显示的是测试的进度。“Pass”显示的是主测试进程完成进度。“Test”显示的是当前测试项目的完成进度。“Test #1”显示的是目前的测试项目。“WallTime”显示测试已经耗费的时间,在这一排数据中“ECC”一栏中,显示的是当前内存是否支持打开ECC校验功能。“TEST”显示的是测试的模式,有“标准”和“完全”模式可供选择。“

设定检测选项:我们可以单击“C”键打开Memtest86的设置菜单,接着单击数字键“2”选择“Test Selection”选项,再单击数字键“3”选择“All Test”选项打开完全测试模式(如图5所示)。

图5 设定检测选项

主要的内存突发问题(比如“死亡”位)将在几秒钟内检测出来。如果是由特定位模式触发的故障,则需要长时间测试才能检测出来。如果你的内存容量比较大,就需要有耐心等待检测结果。笔者使用的测试内存容量是64MB,PC133。使用完全检测模式使用的时间是24分钟。

小结

中央处理器、硬盘、内存是Linux系统的核心。Linux 负有盛名的特点之一是其非凡的稳定性。如果您的硬件有缺陷或配置不正确,那么系统内的数据的安全就危险了,所以实时检测它们的状态是重要的。

Linux系统磁状态检测,检测Linux硬件状态相关推荐

  1. Linux系统弱口令检测和网络端口扫描方法(JR、NMAP)

    Linux系统弱口令检测和网络端口扫描方法JR.NMAP 一.系统弱口令检测 1.Joth the Ripper ,简称JR 2.安装JR工具 3.检测弱口令账号 4.密码文件的暴力破解 5.基本步骤 ...

  2. Linux 系统USB设备检测

    Linux 系统USB设备检测 Linux下查看USB设备命令: 参考链接: https://wenku.baidu.com/view/a33c0d616aeae009581b6bd97f192279 ...

  3. 如何查看linux系统的存储空间大小,linux 如何查看硬盘大小,存储空间大小等系统信息及硬件信息...

    一.linux CPU大小 [root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpui ...

  4. Linux系统使用ss命令查看端口状态

    Linux系统使用ss命令查看端口状态 Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 ...

  5. git 的安装以及使用:是一个开源的分布式版本控制系统,可以对项目进行版本管理。 早期是linux之父用来管理linux系统源代码的(linux是和windows一样操作系统 开源免费的操作...

    ## 总结 - 学会使用基本的git命令 管理源代码 - 学会去github创建仓库 并将代码上传到github的仓库 (有待完成 回家有网再push) - 了解本地的.git和服务器github的. ...

  6. linux系统查看串口占用,Linux 系统串口信息查看

    先确认系统启动的时候串口的信息. ECM_5412@chenfl:~$ dmesg | grep tty [ 0.000000] console [tty0] enabled [ 2.511678] ...

  7. linux系统有哪些版本 linux系统哪个版本好用

    l   inux最早由Linus Benedict Torvalds在1991年开始编写.在这之前,RichardStallman创建了Free SoftwareFoundation(FSF)组织以及 ...

  8. linux系统charp命令,操作系统 Linux系统

    Linux操作系统 预备知识(Operating System): 1.GNU项目,GNU项目是一个自由软件项目,旨在建立一个完全自由开放通用的UNIX软件平台. 2.操作系统:管理计算机硬件和软件资 ...

  9. 嵌入式学习之linux系统编程----1 了解linux编程并且在ubuntu以及ARM上运行测试程序

    1.何为linux系统编程? linux系统编程也称为linux下的高级编程,它介于应用层与驱动层之间. 一般来说分为三个层面,分别是:应用层(写一个qt程序或者c程序就属于是应用层面).驱动层(比如 ...

最新文章

  1. java mysql 查询结果_JAVA中显示MYSQL查询结果
  2. Mysql中文乱码问题完美解决方案
  3. 二叉树的中序遍历(递归和非递归版本)
  4. 如何写一个清晰明了的Bug
  5. mfc cstring 写入文件_兄弟Brother单色激光传真一体机MFC系列不能写入此文件夹提示解决方案...
  6. codeforces-1201 C Maximum Median
  7. 一张以你为中心的地图
  8. C# 设计模式 (一)
  9. 改 3 行代码不应该花一整天的时间
  10. 按学号查找学生信息 用c语言表达,学生信息管理系统C语言编程.docx
  11. web前端面试题(关于闭包)
  12. 从Activiti切换到Camunda的5个理由
  13. 计算机word中如何左右缩进字符,【2人回答】Word文档怎么左右缩进两个字符?-3D溜溜网...
  14. 故障树手册(Fault Tree handbook)(5)
  15. python数据容器
  16. 每天花半小时给孩子讲故事,把他培养成依赖书的人种
  17. 西门子S7-1200介绍和编程及博图软件的安装使用
  18. Gradle教程和指南 - 构建审视
  19. 杨辉三角(C语言实现)
  20. 西行漫记(14):慌神了

热门文章

  1. 窥见C++11智能指针
  2. 区块链技术沙龙最全回顾:我们需要做怎样的区块链?
  3. Kaggle入门 (Titanic XGBoost)
  4. ubuntu下永久设置文件句柄数和虚拟内存,不需重启
  5. 都说现在的主流技术是Flink,那么让我们看看FLink在网易是如何实战的?
  6. leetcode 476. Number Complement | 476. 数字的补数(位运算)
  7. leetcode 107. 二叉树的层次遍历 II(维护两个队列,通过异或运算切换)
  8. 【Java字节码操作】JavaAssist的使用方式,代码示例
  9. JDK 15 JAVA 15的新特性展望
  10. Flume 1.6 遇Emoji表情发生截断丢失数据问题分析