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番目の値を取得しています。


今日は以上です。





 

Sponsored Link

 

Comments