Количество сбойных секторов накопителя

Получение модели жесткого диска и количества сбойных секторов накопителя.

Операционная система: Linux.

Необходимые программы/пакеты на стороне агента: smartmontools.

Тип возвращаемого значения: числовое значение.

1. Команда получения имени параметра:

smartctl -i  /dev/sda
или с учетом нескольких устройств
smartctl -i  /dev/sd#[a,b,c,]

Пример ответа:

smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-91-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Phison Driven SSDs
Device Model:     KINGSTON SKC400S37512G
Serial Number:    50026B726A03AB99
Firmware Version: SAFM001A
User Capacity:    512 110 190 592 bytes [512 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
TRIM Command:     Available, deterministic, zeroed
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sun Jan 14 18:08:24 2024 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Регулярное выражение для получения имени параметра из ответа:

[M,m]odel:\s+(?P<result>.*)\n

2. Команда получения значения параметра:

smartctl -A  /dev/sda
или с учетом нескольких устройств
smartctl -A  /dev/sd#[a,b,c,]

Пример ответа:

smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-91-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== 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
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Not_In_Use              0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Not_In_Use              0x0007   100   100   050    Pre-fail  Always       -       0
  5 Retired_Block_Count     0x0013   100   100   050    Pre-fail  Always       -       0
  7 Not_In_Use              0x000b   100   100   050    Pre-fail  Always       -       0
  8 Not_In_Use              0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       5300
 12 Power_Cycle_Count       0x0012   100   100   000    Old_age   Always       -       30
168 SATA_Phy_Error_Count    0x0012   100   100   000    Old_age   Always       -       15
170 Bad_Blk_Ct_Erl/Lat      0x0003   100   100   010    Pre-fail  Always       -       0/653
173 MaxAvgErase_Ct          0x0012   100   100   000    Old_age   Always       -       15 (Average 4)
175 Not_In_Use              0x0013   100   100   050    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0012   100   100   000    Old_age   Always       -       0
192 Unsafe_Shutdown_Count   0x0012   100   100   000    Old_age   Always       -       12
194 Temperature_Celsius     0x0023   068   058   030    Pre-fail  Always       -       32 (Min/Max 20/42)
196 Reallocated_Event_Count 0x0002   100   100   010    Old_age   Always       -       0
197 Not_In_Use              0x0032   100   100   000    Old_age   Always       -       0
199 SATA_CRC_Error_Count    0x000b   100   100   050    Pre-fail  Always       -       4
218 CRC_Error_Count         0x000b   100   100   050    Pre-fail  Always       -       4
231 SSD_Life_Left           0x0013   100   100   000    Pre-fail  Always       -       100
233 Flash_Writes_GiB        0x000b   100   100   000    Pre-fail  Always       -       2542
240 Not_In_Use              0x0013   100   100   000    Pre-fail  Always       -       0
241 Lifetime_Writes_GiB     0x0012   100   100   000    Old_age   Always       -       1682
242 Lifetime_Reads_GiB      0x0012   100   100   000    Old_age   Always       -       1170
244 Average_Erase_Count     0x0002   100   100   000    Old_age   Always       -       4
245 Max_Erase_Count         0x0002   100   100   000    Old_age   Always       -       15
246 Total_Erase_Count       0x0012   100   100   000    Old_age   Always       -       666752

Регулярное выражение для получения значения параметра из ответа:

[R,r]eallocated_.*\s{6,}(?P<result>\d*)

см. также:

Краткая справка по регулярным выражениям

Выражение RegEx для получения имени/значения параметра