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地址,這樣設備管理員就能夠坐在電腦前就能夠掌控全部硬盤設備的健康情況了。