smartmontools介绍html
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命令。利用它能够测试硬盘的健康情况,并在发生故障前进行预警。linux
准备工做git
在开始测试或监控以前,先检查一下目标硬盘是否支持S.M.A.R.T,以root登录(Windows下以系统管理员身份登录),运行下面的命令:ide
#smartctl
-
i
-
d ata
/
dev
/
sda
这里的参数-i指出显示设备信息,-d指出设备类型,这里指定的设备类型为ata,固然,若是是SCSI硬盘,就指定scsi了,最后的/dev/sda就是设备了,这个命令返回:工具
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,不能使用这套软件包进行测试和监控。spa
对于前面的例子,咱们可使用下面的命令来开启SMART特性:.net
#smartctl
-
s
on
-
d ata
/
dev
/
sda
这里的参数-s就是用来开关SMART特性的,若是加上参数值on就表示开启,若是参数值是off就表示关闭。日志
开始测试orm
其实就一条命令就完成了测试,如:
#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 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
返回结果中的id#为194的属性(Temperature_Celsius)表示输出硬盘温度,因此才会有软件可以监测到硬盘的温度。咱们从这里也能够直接看到硬盘当前的温度为39°C,理想的状态是控制在5°C左右,因此应该增长风扇了。
-a 显示设备全部的SMART信息。
-l error 列出硬盘错误日志。若是显示没有错误最好,若是显示了大量的错误信息,那就该着手准备替换硬盘了。
-l selftest 列出自行测试结果。
利用smartd进行自动监控
smartd是smartmontools软件包中的一个实用程序,能够单独运行,也能够注册为系统服务,Windows上的注册命令为:
注册后,打开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地址,这样设备管理员就能够坐在电脑前就能够掌控全部硬盘设备的健康情况了。