본문 바로가기
리눅스

[S.M.A.R.T] HDD 의 S.M.A.R.T 정보 파싱하기

by 목가 2016. 3. 23.
반응형

리눅스 오픈소스로 제공하는 smartctl 을 사용하면 HDD 의 S.M.A.R.T 정보를 쉽게 얻어올 수 있다. 

smartctl -A 장치명(/dev/sda) 을 입력하면 아래와 같은 정보를 얻을 수 있다. 

붉은 색으로 표시된 정보들에 값이 세팅된 경우에는 HDD 를 점검해볼 필요가 있다. (치명적인 문제가 있을 수 있다.)

또한, 벤더별, 모델별로 HDD 온도의 기준치가 다르다. 평균적으로 65가 되면 RAW 가 발생하고 HDD 가 Damge 를 입어서 정상동작 하지 않을 수 있다. 예를 들어, write 가 되지않아 I/O wait 가 100% 될 수 있다. 

코드상에서는 RAW_VALUE 값이 char [6] 크기로 설정되어 있으므로, 뒤에서 부터 shift 해서 정수로 값을 확인 하면 된다.  

=== START OF READ SMART DATA SECTION ===

SMART Attributes Data Structure revision number: 10

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST     THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE

  1 Raw_Read_Error_Rate     0x000f   078   063   006    Pre-fail                 Always       -       63572944

  3 Spin_Up_Time                0x0003   091   087   000    Pre-fail                  Always       -       0

  4 Start_Stop_Count            0x0032   100   100   020    Old_age               Always       -       746

  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail                  Always       -       0

  7 Seek_Error_Rate             0x000f   081   060   030    Pre-fail                  Always       -       156784931

  9 Power_On_Hours          0x0032   099   099   000    Old_age                   Always       -       1536

 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail                  Always       -       0

 12 Power_Cycle_Count       0x0032   100   100   020    Old_age                  Always       -       774

183 Runtime_Bad_Block       0x0032   100   100   000    Old_age                   Always       -       0

184 End-to-End_Error            0x0032   100   100   099    Old_age                   Always       -       0

187 Reported_Uncorrect      0x0032   100   100   000    Old_age                   Always       -       0

188 Command_Timeout         0x0032   100   099   000    Old_age               Always       -       3

189 High_Fly_Writes             0x003a   100   100   000    Old_age               Always       -       0

190 Airflow_Temperature_Cel 0x0022   056   011   040    Old_age           Always   In_the_past 44 (Min/Max 32/47 #7711)

191 G-Sense_Error_Rate          0x0032   100   100   000    Old_age         Always       -       0

192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age       Always       -       766

193 Load_Cycle_Count            0x0032   100   100   000    Old_age         Always       -       788

194 Temperature_Celsius         0x0022   044   089   000    Old_age       Always       -       44 (0 16 0 0 0)

195 Hardware_ECC_Recovered  0x001a   025   007   000    Old_age       Always       -       63572944

197 Current_Pending_Sector      0x0012   100   100   000    Old_age       Always       -       0

198 Offline_Uncorrectable           0x0010   100   100   000    Old_age       Offline      -       0

199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age       Always       -       2

240 Head_Flying_Hours               0x0000   100   253   000    Old_age       Offline      -       1523 (157 209 0)

241 Total_LBAs_Written              0x0000   100   253   000    Old_age       Offline      -       31005030207

242 Total_LBAs_Read                 0x0000   100   253   000    Old_age       Offline      -       47207705824

반응형

'리눅스' 카테고리의 다른 글

Socket 통신  (0) 2017.08.07
[Vi 편집기] ctag 설정 및 함수 찾기 기능  (0) 2016.03.24
[Virtual Box] Note PC + Virtual Box(Linux) 연동  (0) 2016.01.25
dd 명령어  (0) 2015.11.19
gcc에서 문자열처리  (0) 2015.11.17

댓글