CentOS - smartctl でハードディスク温度取得!
Updated:
当方の稼動中のサーバの監視ツールとして「MRTG」を使用しているのですが、今までそこでハードディスクの温度を「hddtemp」を利用してハードディスクの温度を取得していました。
しかし、最近「hddtemp」でハードディスクの温度を取得するのが一般的でないという事に気づきました。
普通は「smartctl」を使用するようです。
「smartctl」は標準で備わってて「hddtemp」は別途インストールが必要なので、「smartctl」を使用するのも当然か・・・
ということで、「smartctl」についてのメモです。
ハードディスクのS.M.A.R.T.サポート状況を表示する
[root@hoge ~]# smartctl -i /dev/sda
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Model Family: Maxtor DiamondMax 10 family (SATA/300)
Device Model: Maxtor 6V250F0
Serial Number: V501XATG
Firmware Version: VA111630
User Capacity: 251,000,193,024 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0
Local Time is: Fri Oct 29 18:04:16 2010 JST
SMART support is: Available - device has SMART capability. ←S.M.A.R.T.に対応していて
SMART support is: Enabled ←かつ機能している
温度やシークエラーなどの状況を表示する
[root@hoge ~]# smartctl -A /dev/sda
smartctl version 5.38 [i686-redhat-linux-gnu] 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: 32
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
3 Spin_Up_Time 0x0027 185 185 063 Pre-fail Always - 18438
4 Start_Stop_Count 0x0032 253 253 000 Old_age Always - 1169
5 Reallocated_Sector_Ct 0x0033 253 253 063 Pre-fail Always - 0
7 Seek_Error_Rate 0x000a 253 252 000 Old_age Always - 0
8 Seek_Time_Performance 0x0027 250 241 187 Pre-fail Always - 42755
9 Power_On_Hours 0x0032 199 199 000 Old_age Always - 18983
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 - 901
189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0022 051 039 000 Old_age Always - 49 (Lifetime Min/Max 22/49) ← ハードディスクの温度
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 041 253 000 Old_age Always - 49
195 Hardware_ECC_Recovered 0x000a 253 240 000 Old_age Always - 620
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 252 000 Old_age Always - 3
202 TA_Increase_Count 0x000a 253 250 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
210 Unknown_Attribute 0x0032 253 252 000 Old_age Always - 0
211 Unknown_Attribute 0x0032 253 252 000 Old_age Always - 0
212 Unknown_Attribute 0x0032 001 001 000 Old_age Always - 4096
※他にもコマンドオプションがあります。”-h”で確認可能です。
ハードディスクの温度だけを取得する
smartctl -A /dev/sda | grep Temperature_Celsius | awk '{print $10}'
「 smartctl -A /dev/sda 」で情報を取得し、「 grep Temperature_Celsius 」で対象の行を抽出、「 awk ‘{print $10}’ 」でその行の10番目の値を取得しています。
今日は以上です。
Comments