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. HDU 1788 Chinese remainder theorem again 中国剩余定理

    题意: 给定n,AA 以下n个数m1,m2···mn 则有n条方程 res % m1 = m1-AA res % m2 = m2-AA 问res的最小值 直接上剩余定理,嘿嘿 #include< ...

  2. java生成一张图片

    public class CreateImage { public static void main(String[] args) throws Exception{ int width = 100; ...

  3. 解决solr搜索多词匹配度和排序方案

    转载请标明出处:http://blog.csdn.net/hu948162999/article/details/47727159 本文主要介绍了在短语.句子.多词查询中.solr在控制查询命中数量. ...

  4. 远程桌面授权server没有提供许可证问题解决方法

    今天远程server报如图所看到的错误,网上查找的方法 方法一:(亲測有效) mstsc /V:192.168.0.3 /admin  方法二:(因为server正在使用中,未作測试) 删除远程桌面服 ...

  5. Juniper路由器

    Juniper路由器入门之一:需要子接口的端口配置 set interfaces fe-2/0/1 vlan-tagging              ――――在配置接口启用封装VLAN set in ...

  6. TCP心跳包

    所谓的心跳包就是客户端定时放送简单的信息给服务器端,告诉它我还在而已.代码就是每 隔几分钟发送一个固定信息给服务器端,服务器端回复一个固定信息.如果服务器端几分钟后没有收到客户端信息则视客户端断开.比 ...

  7. Android源代码分支、版本号、支持设备列表

    Build Branch Version Supported devicesOPD3.170816.023 android-8.0.0_r34 Oreo Pixel 2 XL, Pixel 2OPD1 ...

  8. mac下安装tesseract-OCR(Mac下还是有lib依赖的问题,有时间再解决)

    1.先下载需要的软件包 OCR工具:  Tesseract-OCR3.0.1  source code    tesseract-ocr-3.01.eng.tar.gz 破验证码用英文就够了. 图像处 ...

  9. mysql 1862 密码过期

    1.管理员权限运行命令: cmd mysqladmin -uroot -p password 修改密码. 2.设置密码永不过期. mysql 数据库\ user 表\ password_expired ...

  10. chrome打开控制台状态下,没有人为打断点,自动进入断点模式的解决方法

    如下图所示:在控制台去掉Sources -> XHR/fetch Breakpoints -> Any XHR or fetch 的勾