Files
StrixScripts/System/check-hardware-health.md
T

5.7 KiB

check-hardware-health.sh

Проверява SMART състоянието и типа на физическите дискове, както и температурите на наличните хардуерни датчици. Проблемите се маркират с червен текст в терминала и с червен статус в HTML отчета.

Какво прави

Скриптът показва времето от последното стартиране на системата, открива дисковете чрез lsblk, определя типа им по интерфейса и rotational флага (например PATA, SATA HDD/SSD и NVMe SSD), след което чете SMART данните чрез smartctl. При неуспешен SMART self-assessment или отчетен NVMe critical warning дискът се маркира като проблемен. Температурите се събират чрез sensors -j; за всеки датчик се използват предоставените от него прагове, а ако липсват — предпазни прагове по тип компонент. SMART температурата също се включва, когато е налична. При системи с батерия се показват зарядът, състоянието, циклите и здравето, изчислено от пълния спрямо проектния капацитет, когато тези стойности са налични.

Отчетът се показва в терминала и може да се запише като TXT, HTML или JSON. За терминалния изход се използва ANSI червено, когато stdout е терминал и NO_COLOR не е зададен; TXT файлът съдържа ясни статуси, HTML отчетът оцветява проблемните редове в червено, а JSON файлът съдържа структурираните данни от проверката.

При стартиране чрез sudo интерактивният път по подразбиране сочи към home директорията на извикалия потребител. Записаният файл получава неговите UID/GID, така че да остане достъпен за него след приключване на скрипта.

Изисквания

  • Linux, Bash, Python 3 и lsblk (задължителни)
  • smartmontools (smartctl) — незадължителен; без него SMART е „непроверено“
  • lm-sensors (sensors) — незадължителен; без него температурите от тези датчици не са налични
  • SMART достъпът до някои устройства може да изисква root права или подходящи права за /dev.
  • При стартиране без root права скриптът предупреждава, че SMART данните може да са непълни, и иска потвърждение преди проверките.

Употреба

./System/check-hardware-health.sh [OPTIONS]
Опция Описание
-o, --output PATH Записва директно във файл; без тази опция предлага интерактивен запис
-f, --format FORMAT Формат txt, html или json
--force Позволява презапис на съществуващ файл без потвърждение
-h, --help Показва помощта и приключва

Примери

# Проверява устройствата и предлага интерактивно записване
./System/check-hardware-health.sh

# Записва HTML отчет
./System/check-hardware-health.sh --output "$HOME/hardware-health.html"

# Записва HTML отчет и разрешава презапис
./System/check-hardware-health.sh --output /tmp/hardware-health.html --format html --force

# Записва структуриран JSON отчет; форматът се разпознава и по разширението
./System/check-hardware-health.sh --output "$HOME/hardware-health.json"

Ограничения

Показват се само датчици, SMART атрибути и батерийни полета, предоставени от kernel, драйвера и устройството. Липсващ резултат не доказва, че компонентът е изправен. Батерийното здраве се оценява спрямо капацитетите full/design: под 80% е предупреждение, под 60% е критично; някои драйвери не предоставят цикли или капацитети. Прагът за температурно предупреждение обичайно идва от sensors; при липса на праг се използват 60 C за дискове, 85 C за CPU/GPU и 80 C за други компоненти. Това са общи предпазни стойности, не заместител на спецификацията на производителя. „PATA“ се разпознава само когато устройството е представено с традиционно /dev/hd* име без transport метаданни; при двусмислени данни отчетът използва обобщения тип от lsblk.