Вам следует заменить жесткий диск, если вам дороги ваши данные.
SMART в потребительском оборудовании обычно не очень полезен, а прошивка чаще всего сообщает, что все в порядке; обычно в оборудовании для бизнеса/сервера это более информативно.
Плохие сектора также обычно маскируются внутри жесткого диска до определенной степени. К тому времени, когда они начнут появляться/быть видимыми снаружи, пора сбросить носитель/жесткий диск и заменить его новым.
См. Google говорит, что диагностика не выявляет многие сбои дисков ПК
Последовательность «обратная косая черта -новая строка -пробел» заменяется одним пробелом, поэтому вы добавляете пробелы в шаблон.
Использование массивов bash может привести к читабельному коду, подобному этому:
words=(
"Spin_Retry_Count"
"Calibration_Retry_Count"
"Reallocated_Event_Count"
"Offline_Uncorrectable"
"Reallocated_Sector_Ct"
"Current_Pending_Sector"
"CRC_Error_Count"
"Multi_Zone_Error_Rate"
"Temperature"
"CRC_Error_Count"
"Runtime_Bad_Block"
"Erase_Fail_Count"
"Program_Fail_C"
"End-to-End_Error"
)
# join the words with pipes
pattern=$( IFS='|'; echo "${words[*]}" )
smartctl -a /dev/sda | grep -Ei "$pattern" | awk '{print $2, $10}'
Мы можем удалить grep из конвейера, потому что GNU awk может делать то же, что и grep, но, возможно, немного более многословно:
smartctl -a /dev/sda | gawk -v p="$pattern" -v IGNORECASE=1 '$0 ~ p {print $2, $10}'