smartmontools介绍

  smartmontools是一款开源的磁盘控制,监视工具,可以运行在Linux,Unix,BSD,Solaris,Mac OS,OS/2,Cygwin和Windows上,同时它还可以从启动光盘或启动软盘运行,支持ATA/ATAPI/SATA-3(到-8)位的硬盘和 SCSI硬盘,另外还支持磁带设备,它的老家在smartmontools.sourceforge.net,实际上它是一个软件包,包括了两个实用程序:smartctl和smatd。它监控的硬盘必须具有S.M.A.R.T特性,目前所有硬盘都有这个特性,但默认情况下通常没有开启这个功能,有两种方法来开启这个特性:1)通过BIOS设置选项2)通过smartctl命令。利用它可以测试硬盘的健康状况,并在发生故障前进行预警。

  准备工作

  在开始测试或监控之前,先检查一下目标硬盘是否支持S.M.A.R.T,以root登陆(Windows以系统管理员身份登陆),运行下面的命令:

#smartctl -i -d ata /dev/sda
  这里的参数-i指出显示设备信息,-d指出设备类型,这里指定的设备类型为ata,当然,如果是SCSI硬盘,就指定scsi了,最后的/dev/sda就是设备(df命令查询设备)了

  这个命令返回:

smartctl version 5.37 'i686-pc-linux-gnu' Copyright (C) 2002-6

Bruce Allen

Home page is http://smartmontools.sourceforge.net/=== START OF INFORMATION SECTION ===

Model Family: Western Digital Caviar SE (Serial ATA) family

Device Model: WDC WD800JD-00MSA1

Serial Number: WD-WMAM9S474555

Firmware Version: 10.01E01

User Capacity: 80,026,361,856 bytes

Device is: In smartctl database 'for details use: -P show'

ATA Version is: 7

ATA Standard is: Exact ATA specification draft version not

indicated

Local Time is: Thu Feb 7 13:09:37 2008 PST

SMART support is: Available - device has SMART capability.

SMART support is: Disabled

  从返回的信息中,可以看到硬盘的生产厂家,型号,序列号,容量,是否支持SMART,目前SMART开启没有。结果的最后两行就是我们需要的信息,从这里可以看出,这块硬盘是支持SMART技术的,但目前还没有开启它。

  如果运行这个命令返回了类似“Device does not support SMART”的信息就说明目标硬盘不支持SMART,不能使用这套软件包进行测试和监控。

  对于前面的例子,我们可以使用下面的命令来开启SMART特性:

#smartctl -s on -d ata /dev/sda
  这里的参数-s就是用来开关SMART特性的,如果加上参数值on就表示开启,如果参数值是off就表示关闭。

  开始测试

  其实就一条命令就完成了测试,如:

#smartctl -H -d ata /dev/sda
  这里的参数-H就是指定显示目标硬盘的健康状态

这个命令返回如下结果:

smartctl version 5.37 'i686-pc-linux-gnu' Copyright (C) 2002-6

Bruce Allen

Home page is http://smartmontools.sourceforge.net/=== START OF READ SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

  注意最后一行的测试结果“PASSED”,表明测试通过,该硬盘目前处于健康状态。

  其它一些有用的参数

  -A 显示支持的SMART属性,参考命令:

#smartctl -A sda

  返回内容: 

smartctl version 5.38 [i686-mingw32-xp-sp2] Copyright (C) 2002-8 Bruce Allen

Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===

SMART Attributes Data Structure revision number: 16

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE

3   Spin_Up_Time    0x0027  220  220    063   Pre-fail  Always   -        13621

4   Start_Stop_Count  0x0032  253  253    000   Old_age  Always   -        999

5   Reallocated_Sector_Ct 0x0033 253 253 063 Pre-fail Always - 0

6   Read_Channel_Margin 0x0001 253 253 100 Pre-fail Offline - 0

7   Seek_Error_Rate 0x000a 253 252 000 Old_age Always - 0

8   Seek_Time_Performance 0x0027 250 241 187 Pre-fail Always - 59017

9   Power_On_Minutes 0x0032 225 225 000 Old_age Always - 1019h+16m

10  Spin_Retry_Count 0x002b 253 252 157 Pre-fail Always - 0

11  Calibration_Retry_Count 0x002b 253 252 223 Pre-fail Always - 0

12  Power_Cycle_Count 0x0032 251 251 000 Old_age Always - 1091

192  Power-Off_Retract_Count 0x0032 253 253 000 Old_age Always - 0

193  Load_Cycle_Count 0x0032 253 253 000 Old_age Always - 0

194  Temperature_Celsius 0x0032 253 253 000 Old_age Always - 39

195  Hardware_ECC_Recovered 0x000a 253 252 000 Old_age Always - 1566

196  Reallocated_Event_Count 0x0008 253 253 000 Old_age Offline - 0

197  Current_Pending_Sector 0x0008 253 253 000 Old_age Offline - 0

198  Offline_Uncorrectable 0x0008 253 253 000 Old_age Offline - 0

199  UDMA_CRC_Error_Count 0x0008 199 199 000 Old_age Offline - 0

200  Multi_Zone_Error_Rate 0x000a 253 252 000 Old_age Always - 0

201  Soft_Read_Error_Rate 0x000a 253 251 000 Old_age Always - 5

202  TA_Increase_Count 0x000a 253 252 000 Old_age Always - 0

203  Run_Out_Cancel 0x000b 253 252 180 Pre-fail Always - 0

204  Shock_Count_Write_Opern 0x000a 253 252 000 Old_age Always - 0

205  Shock_Rate_Write_Opern 0x000a 253 252 000 Old_age Always - 0

207  Spin_High_Current 0x002a 253 252 000 Old_age Always - 0

208  Spin_Buzz 0x002a 253 252 000 Old_age Always - 0

209  Offline_Seek_Performnce 0x0024 189 187 000 Old_age Offline - 0

99  Unknown_Attribute 0x0004 253 253 000 Old_age Offline - 0

100  Unknown_Attribute 0x0004 253 253 000 Old_age Offline - 0

101  Unknown_Attribute 0x0004 253 253 000 Old_age Offline - 0

  返回结果中的各种属性请参见http://sourceforge.net/apps/trac/smartmontools/wiki/TitleIndex.   比如,id#为194的属性(Temperature_Celsius)表示输出硬盘温度,所以才会有软件能够监测到硬盘的温度。我们从这里也可以直接看到硬盘当前的温度为39°C,理想的状态是控制在5°C左右,所以应该增加风扇了。Pre-fail就是偵測到有衰退的現象,Old-age就算正常,只是硬碟算高齡了...

  -a 显示设备所有的SMART信息。

  -l error 列出硬盘错误日志。如果显示没有错误最好,如果显示了大量的错误信息,那就该着手准备替换硬盘了。

  -l selftest 列出自行测试结果。

利用smartd进行自动监控

  smartd是smartmontools软件包中的一个实用程序,可以单独运行,也可以注册为系统服务,Windows上的注册命令为:

>smartd install
  注册后,打开services.msc,可看到一个名叫“SmartD Service”服务,并设置为“自动”启动。

  在非Windows平台上可通过向/etc/rc.d/init.d添加smartd脚本,其实在安装smartmontools软件包的时候 通常会安装到这个位置,只需要在对应的启动级别下做一个软链接就可以了。

  smartd的配置文件为smartd.conf(Windows和非Windows平台都叫这个名字,Windows平台与 smartd.exe在同一个目录下,非Windows平台位于/etc目录下),在这个配置文件中已经内置许多种监视方法和参数说明,值得一体的是-m 参数,可以利用它将监视报告以邮件的形式发送给指定的E-mail地址,这样设备管理员就可以坐在电脑前就可以掌控所有硬盘设备的健康状况了。

smartctl----硬盘状态监控的更多相关文章

  1. 【VC++技术杂谈003】打印技术之打印机状态监控

    在上一篇博文中我主要介绍了如何获取以及设置系统的默认打印机,本文将介绍如何对打印机状态进行实时监控,记录下所打印的文档.打印的份数以及打印时间等打印信息. 1.打印机虚脱机技术 在正式介绍如何对打印机 ...

  2. Nginx状态监控

    通过配置nginx.conf文件来实现对Nginx状态信息的监控. 1.配置nginx.conf vim /usr/local/nginx/conf/nginx.conf 再server块配置项中添加 ...

  3. Go语言程序的状态监控 via 达达

    Go语言程序的状态监控 Go是很实在的编程语言,从一开始就提供了很详细的运行状态信息.产品上线后的调优和排查疑难杂症都得靠这些状态信息.这边总结一些我们项目里用到的状态监控手段. pprof Go自带 ...

  4. Go语言程序的状态监控

    Go是很实在的编程语言,从一开始就提供了很详细的运行状态信息.产品上线后的调优和排查疑难杂症都得靠这些状态信息.这边总结一些我们项目里用到的状态监控手段. pprof Go自带了一个pprof工具,这 ...

  5. (WinForm)文件夹状态监控,最小化到托盘,开机自启动

    原文 (WinForm)文件夹状态监控,最小化到托盘,开机自启动 . 文件夾監控(監測文件夾中的文件動態): //MSDN上的例子 public class Watcher { public stat ...

  6. 4. SQL Server数据库状态监控 - 作业状态

    原文:4. SQL Server数据库状态监控 - 作业状态 有很多地方可以设置定时任务,比如:Windows的计划任务,Linux下的crontab,各种开发工具里的timer组件.SQL Serv ...

  7. 2. SQL Server数据库状态监控 - 错误日志

    原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯 ...

  8. 3. SQL Server数据库状态监控 - 可用空间

    原文:3. SQL Server数据库状态监控 - 可用空间 数据库用来存放数据,那么肯定需要存储空间,所以对磁盘空间的监视自然就很有必要了. 一. 磁盘可用空间 1. 操作系统命令或脚本.接口或工具 ...

  9. mysql主从同步(4)-Slave延迟状态监控

    mysql主从同步(4)-Slave延迟状态监控  转自:http://www.cnblogs.com/kevingrace/p/5685511.html 之前部署了mysql主从同步环境(Mysql ...

  10. workerman vmstat服务器状态监控服务

    转载出自 :http://www.workerman.net/workerman-vmstat workerman vmstat服务器状态监控服务 vmstat 命令可以展现服务器的CPU使用率,内存 ...

随机推荐

  1. mysql查询count

    Every derived table must have its own alias 每个派生出来的表都必须有一个自己的别名 一般在多表查询时,会出现此错误. 因为,进行嵌套查询的时候子查询出来的的 ...

  2. POJ3204 Ikki's Story - Road Reconstruction 网络流图的关键割边

    题目大意:一个有源有汇的城市,问最少增加城市中的多少道路可以增加源到汇上各个路径上可容纳的总车流量增加. 网络流关键割边集合指如果该边的容量增加,整个网络流图中的任意从原点到汇点的路径的流量便可增加. ...

  3. 【POJ 2976】 Dropping Tests

    [题目链接] http://poj.org/problem?id=2976 [算法] 0/1分数规划 [代码] #include <algorithm> #include <bits ...

  4. EOJ 1113 装箱问题

    有一个箱子容量为 V (正整数,0≤V≤20000),同时有 n 个物品(0<n≤30),每个物品有一个体积(正整数).要求从 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. Inp ...

  5. 杂项:hive(数据仓库工具)

    ylbtech-杂项:hive(数据仓库工具) hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapRedu ...

  6. js分享代码

    <<!DOCTYPE html><html><head> <title></title></head> <body& ...

  7. js设计模式-享元模式

    享元模式实际上是一种优化模式,目的在于提高系统的性能和代码的效率. 使用享元模式的条件:最重要的条件是网页中必须使用了大量资源密集型对象,如果只会用到了少许这类对象,那么这种优化并不划算.第二个条件是 ...

  8. OpenCascade 边界表示法(BRep)

    转自 http://www.cppblog.com/eryar/archive/2013/08/20/202678.html Topology and Geometry in OpenCascade- ...

  9. C - Ilya and Sticks(贪心)

    Problem description In the evening, after the contest Ilya was bored, and he really felt like maximi ...

  10. WCF WEB HTTP请求 WCF REST FUL

    首先上点概念WCF 很好的支持了 REST 的开发, 而 RESTful 的服务通常是架构层面上的考虑. 因为它天生就具有很好的跨平台跨语言的集成能力,几乎所有的语言和网络平台都支持 HTTP 请求, ...