🐹 CentOS 7: Работа со S.M.A.R.T. Утилита smartmontools. Утилита smartctl.

Содержание:

1. О программе.
2. Установка программы.
3. Информация о дисках в системе.
4. Проверка статуса устройства.
5. Отображение общей информации устройства.
6. Отображение подробной информации устройства.
7. Варианты тестов.
8. Просмотр файла справки программы.
9. Настройка автоматической проверки устройств.
10. Проверка состояния дисков и оповещение.
11. Планирование графика проверки устройств.
12. Синтаксис из smartd.conf.
13. Оригиналы источников информации.


1. О программе.

Инструмент позволяет тестировать файловую систему с большей надежностью. В современных жестких дисках имеется встроенный модуль самоконтроля S. M. A. R. T., который анализирует данные накопителя и помогает определить неисправность на первоначальной стадии. Smartmontools предназначен для работы с этим модулем.

Пакет Smartmontools состоит из двух утилит — smartctl и smartd. Вместе они представляют мощную систему мониторинга и предупреждения о возможных поломках HDD в CentOS 7.

Подробнее о Smartmontools можно узнать на сайте разработчиков, оттуда же можно и скачать последние версии данного программного обеспечения: http://www.smartmontools.org

2. Установка программы.

Запуск установки производится через терминал:

# yum -y install smartmontools

3. Информация о дисках в системе.

Сначала узнайте какие жесткие диски подключены к вашей системе:

# ls -l /dev | grep -E 'sd|hd'

В выводе будет что-то подобное:

Здесь sdX это имя устройства HDD подключенного к компьютеру.

Теперь тоже самое, но силами утилиты smartctl, которую мы только что поставили:

# smartctl --scan

4. Проверка статуса устройства.

4.1. Если отключен S.M.A.R.T., то включаем его:

# smartctl -s on /dev/sda

или

# smartctl --smart=on /dev/sda

4.2. Для просмотра короткой информации о состоянии жесткого диска, вводится строка:

# smartctl -H /dev/sdb

ОТВЕТ: PASSED означает, что с данным HDD всё хорошо.

Этот тест может быть пройден (PASSED) или нет (FAILED). В последнем случае сбой неизбежен, начинайте резервное копирование данных с этого диска.

4.3. Если нужно выключить S.M.A.R.T.:

# smartctl -s off /dev/sda

5. Отображение общей информации устройства.

Для отображения информации о конкретном жестком диске (модель устройства, S/N, версия прошивки, версия ATA, доступность интерфейса SMART) Запустите smartctl с опцией --info и именем жесткого диска. Так же можно проверить, включена ли интеллектуальная функция S.M.A.R.T. для диска или нет.

Например, для /dev/sdb:

# smartctl --info /dev/sdb
# smartctl -i /dev/sdb

Если вышеприведенная команда не работает, вам может потребоваться сообщить smartctl, какой тип интерфейса жесткого диска вы используете:

# smartctl -a -d ata /dev/sdb

В данном примере мы сообщили компьютеру, что мы используем SATA устройство.

Хотя вы можете и не обратить внимания на версию SATA или ATA, это один из самых важных факторов при поиске замены устройству. Каждая новая версия ATA совместима с предыдущими. Например, старые устройства ATA-1 и ATA-2 прекрасно будут работать на ATA-6 и ATA-7 интерфейсах, но не наоборот. Когда версии ATA устройства и интерфейса не совпадают, возможности оборудования не будут полностью раскрыты.

В данном случае для замены лучше всего выбрать жесткий диск SATA 3.0.

Включите интеллектуальную возможность для диска S.M.A.R.T., если она отключена:

# smartctl -s on -o on -S on /dev/sdb

Если вы получили ответ «SMART Enable Automatic Offline failed: scsi error badly formed scsi parameters» означает, что для активации и использования этой замечательной функции нужно включить соответствующее значение в BIOS‘е про S.M.A.R.T.

Иногда бывает так, что ваш BIOS и жесткий диск не поддерживают данную технологию.

6. Отображение подробной информации устройства.

Для просмотра подробной информации о состоянии жесткого диска, вводится строка:

# smartctl -a /dev/sdb

или

# smartctl -s on -a /dev/sdb

Здесь опция -s включает флаг S.M.A.R.T. на указном устройстве. Вы можете его убрать если поддержка S.M.A.R.T. уже включена. Информация о диске разделена на несколько разделов, В разделе READ SMART DATA находится общая информация о здоровье жесткого диска.

Получим длинный ответ консоли о состоянии диска:

Откройте для просмотра.
[root@emachines ~]# smartctl -s on -a /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1127.8.2.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Hitachi/HGST Travelstar Z5K500
Device Model:     HGST HTS545050A7E680
Serial Number:    RBF50AQ9067D1F
LU WWN Device Id: 5 000cca 8b8c2d5f6
Firmware Version: GR2OA3J0
User Capacity:    500 107 862 016 bytes [500 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Mon Jun  8 16:02:44 2020 +05
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (   45) seconds.
Offline data collection
capabilities:                    (0x51) SMART execute Offline immediate.
                                        No Auto Offline data collection support.
                                        Suspend Offline collection upon new
                                        command.
                                        No Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 110) minutes.
SCT capabilities:              (0x003d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

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     0x002f   100   100   062    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0025   100   100   040    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0023   214   100   033    Pre-fail  Always       -       1
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       296
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002f   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0025   100   100   040    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   078   078   000    Old_age   Always       -       9929
 10 Spin_Retry_Count        0x0033   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       229
183 Runtime_Bad_Block       0x0032   100   100   001    Old_age   Always       -       0
184 End-to-End_Error        0x0033   100   100   097    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   099   099   000    Old_age   Always       -       5
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       1258451828737
190 Airflow_Temperature_Cel 0x0022   059   047   045    Old_age   Always       -       41 (Min/Max 22/53)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       109
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       1376277
193 Load_Cycle_Count        0x0032   068   068   000    Old_age   Always       -       325949
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0036   100   100   000    Old_age   Always       -       0
223 Load_Retry_Count        0x002a   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
ATA Error Count: 5
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 5 occurred at disk power-on lifetime: 9925 hours (413 days + 13 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 08 68 08 00 09  Error: UNC at LBA = 0x09000868 = 150997096

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 80 70 00 35 ae 40 08   2d+17:32:42.266  READ FPDMA QUEUED
  60 80 68 80 34 ae 40 08   2d+17:32:42.255  READ FPDMA QUEUED
  60 80 60 00 34 ae 40 08   2d+17:32:42.072  READ FPDMA QUEUED
  60 80 50 80 33 ae 40 08   2d+17:32:42.071  READ FPDMA QUEUED
  60 80 60 00 33 ae 40 08   2d+17:32:42.070  READ FPDMA QUEUED

Error 4 occurred at disk power-on lifetime: 9925 hours (413 days + 13 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  10 41 00 00 e4 07 09  Error: IDNF at LBA = 0x0907e400 = 151512064

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 80 20 00 f3 a2 40 08   2d+17:29:56.087  READ FPDMA QUEUED
  60 80 78 80 f2 a2 40 08   2d+17:29:56.086  READ FPDMA QUEUED
  60 80 70 00 f2 a2 40 08   2d+17:29:56.084  READ FPDMA QUEUED
  60 80 68 80 f1 a2 40 08   2d+17:29:56.083  READ FPDMA QUEUED
  60 80 60 00 f1 a2 40 08   2d+17:29:56.082  READ FPDMA QUEUED

Error 3 occurred at disk power-on lifetime: 9925 hours (413 days + 13 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 08 10 08 00 08  Error: UNC at LBA = 0x08000810 = 134219792

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 80 58 00 c0 84 40 08   2d+17:27:06.154  READ FPDMA QUEUED
  60 80 50 80 bf 84 40 08   2d+17:27:06.153  READ FPDMA QUEUED
  60 80 48 00 bf 84 40 08   2d+17:27:06.153  READ FPDMA QUEUED
  60 80 40 80 be 84 40 08   2d+17:27:06.152  READ FPDMA QUEUED
  60 80 38 00 be 84 40 08   2d+17:27:06.152  READ FPDMA QUEUED

Error 2 occurred at disk power-on lifetime: 7331 hours (305 days + 11 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 00 e0 32 d1 0b  Error: WP at LBA = 0x0bd132e0 = 198259424

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  61 00 30 00 40 d0 40 08   3d+00:50:28.033  WRITE FPDMA QUEUED
  61 00 28 00 3c d0 40 08   3d+00:50:28.033  WRITE FPDMA QUEUED
  61 00 20 00 38 d0 40 08   3d+00:50:28.033  WRITE FPDMA QUEUED
  61 00 18 00 34 d0 40 08   3d+00:50:28.033  WRITE FPDMA QUEUED
  61 00 10 00 30 d0 40 08   3d+00:50:28.033  WRITE FPDMA QUEUED

Error 1 occurred at disk power-on lifetime: 7200 hours (300 days + 0 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  10 41 00 00 40 2c 0f  Error: IDNF at LBA = 0x0f2c4000 = 254558208

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 38 60 45 33 40 08   5d+19:59:12.751  READ FPDMA QUEUED
  60 00 20 60 44 33 40 08   5d+19:59:12.751  READ FPDMA QUEUED
  60 00 18 60 43 33 40 08   5d+19:59:12.747  READ FPDMA QUEUED
  60 00 08 60 42 33 40 08   5d+19:59:12.747  READ FPDMA QUEUED
  60 00 00 e0 96 37 40 08   5d+19:59:12.571  READ FPDMA QUEUED

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      5934         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Следующая вещь которую можно посмотреть, когда выполняется диагностика HDD в CentOS 7, это таблица S.M.A.R.T. атрибутов.

В S.M.A.R.T. таблице записаны параметры, определенные для конкретного диска разработчиком, а также порог отказа для этих параметров. Таблица заполняется автоматически и обновляется на основе прошивки диска.

  • ID # — идентификатор атрибута, как правило, десятичное число между 1 и 255;
  • ATTRIBUTE_NAME — название атрибута;
  • FLAG — флаг обработки атрибута;
  • VALUE — это поле представляет нормальное значение для состояния данного атрибута в диапазоне от 1 до 253, где 253 — лучшее состояние, 1 — худшее. В зависимости от свойств, начальное значение может быть от 100 до 200;
  • WORST — худшее значение value за все время;
  • THRESH — самое низкое значение value, после перехода за которое нужно сообщить что диск непригоден для эксплуатации;
  • TYPE — тип атрибута, может быть Pre-fail или Old_age. Все атрибуты по умолчанию считаются критическими, то-есть если диск не прошел проверку по одному из атрибутов, то он уже считается не пригодным (FAILED), но атрибуты old_age не критичны;
  • UPDATED — показывает частоту обновления атрибута;
  • WHEN_FAILED — будет установлено в FAILING_NOW если значение атрибута меньше или равно THRESH, или в «-» если выше. В случае FAILING_NOW, лучше как можно скорее выполнить резервное копирование, особенно если тип атрибута pre-fail.
  • RAW_VALUE — значение, определенное производителем.

7. Варианты тестов.

7.1. Просмотр сколько времени займут различные тесты:

# smartctl -c /dev/sda

7.2. Запуск короткого теста в фоновом режиме:

# smartctl -t short /dev/sda

7.3. Запуск длинного теста в фоновом режиме:

# smartctl -t long /dev/sda

7.4. Просмотр результатов прохождения тестов:

# smartctl -l selftest /dev/sda

7.5. Остановка (прерывание) теста:

# smartctl -X

7.6. Просмотр всей S.M.A.R.T. информации о диске:

# smartctl -a /dev/sda

7.7. Просмотр всей информации о диске, а не только S.M.A.R.T., включая возможные ошибки:

# smartctl -x /dev/sda

7.8. Просмотр S.M.A.R.T. атрибутов/показателей и их значений для диска:

# smartctl -A /dev/sda

Утилита имеет и другие параметры:--all,--xall, чтобы просмотреть информацию в том числе и об остальных параметрах накопителя.

# smartctl --all /dev/sda

# smartctl --xall /dev/sda

8. Просмотр файла справки программы.

Для получения дополнительной информации вызывается справка:

# man smartctl

# smartctl -h

Выход из справки — клавиша ‘q‘.

9. Настройка автоматической проверки устройств.

Сейчас вы думаете, да smartctl хороший инструмент, но у меня нет возможности запускать его каждый раз вручную, было бы неплохо автоматизировать все это дело, чтобы программа запускалась периодически и сообщала мне о результатах проверки. И это возможно, с помощью smartd.

Поставим в автозапуск утилиту 

# systemctl enable smartd

Запустим ее:

# systemctl start smartd

Проверим успех запуска:

# systemctl status smartd -l

Автоматическая диагностика HDD в CentOS 7 настраивается очень просто.

В начале настройте Postfix 3 для отправки электронной почты с внутреннего системного «почтового ящика».

Ссылка на инструкцию: CentOS 7: Программа Postfix 3 для отправки электронной почты с внутреннего системного «почтового ящика».

# настройка Postfix 3

Сначала отредактируйте файл конфигурации smartd — /etc/smartd.conf.

Создадим резервную копию конфигурационного файла, на всякий случай:

# cp /etc/smartmontools/smartd.conf /etc/smartmontools/smartd.conf.original

Открываем текстовый редактор и модифицируем файл конфигурации:

# mcedit /etc/smartmontools/smartd.conf

Добавьте следующую строку:

/dev/sdb -m myemail@mydomain.com -M test

Сохраните текстовый файл с настройками.

Здесь:

  • -m <email адрес> — адрес электронной почты для отправки результатов проверки. Это может быть адрес локального пользователя, суперпользователя или внешний адрес, если настроен сервер для отправки электронной почты;
  • -M — частота отправки писем
    • once — отправлять только одно сообщение о проблемах с диском.
    • daily — отправлять сообщения каждый день если была обнаружена проблема.
    • diminishing — отправлять сообщения через день если была обнаружена проблема.
    • test — отправлять тестовое сообщение при запуске smartd.
    • exec — выполняет указанную программу в место отправки почты.

Сохраните изменения в текстовом редакторе и перезапустите smartd службу:

# systemctl restart smartd

Вы должны получить на электронную почту письмо о том, что программа была запущена успешно.

Это будет работать только если на компьютере настроен почтовый сервер.

Как сделать возможность получать письма с сервера описано в инструкции: «CentOS 7: Postfix 3 для отправки электронной почты с внутреннего системного «почтового ящика».

10. Автоматических проверок состояния дисков и оповещения в случае обнаружения ошибок.

Открываем текстовый редактор и модифицируем файл конфигурации:

# mcedit /etc/smartmontools/smartd.conf

Первым делом закомментируем хэшем все открытые опции DEVICESCAN :

# DEVICESCAN [... список чего-то ...]

Добавьте следующие строки:

/dev/sda -o on -S on -a -s (L/../../6/06) -m root -M exec /путь_до_скрипта -M test 
/dev/sdb -o on -S on -a -s (L/../../7/06) -m root -M exec /путь_до_скрипта -M test

Сохраните текстовый файл с настройками.

Теперь подробнее, что тут запрограммировано:

  • -o on – включение S.M.A.R.T. Automatic Offline тестов для обновления статуса атрибутов.
  • -S on – включение автосохранения атрибутов.
  • -a – включает набор опций:
    • -H – проверить только здоровье диска, если значение Prefailure атрибута меньше за threshold – увидим, что диск не здоров,
    • -f – мониторинг наличия ошибок в атрибутах,
    • -t – включение опций -u и -p,
    • -l error -l selftest – проверяется журнал ошибок и пройденных тестов,
    • -С 197 – сообщать, если количество Pending Sector не равно нулю,
    • -U 198 – сообщать, если количество Offline Uncorrectable секторов не равно нулю.
  • -s – запуск самотестирования когда тип тестирования и дата совпадают с регулярным выражением. В данном случае:
    • Каждую субботу в 6 утра запускать long-тест для диска /dev/sda.
    • Каждое воскресенье в 6 утра запускать long-тест для диска /dev/sdb.
  • -m – кому отправлять письма о проблеме – в данном случае отправлять сообщения об ошибке root-пользователю (в /etc/aliases настраиваем переадресацию на нужный E-mail). Можно напрямую указать нужный E-Mail, куда должен приходить сообщения/ошибки. Например: -m myname@mydoamin.com.
  • -M – модифицировать E-mail сообщение перед отправкой. В данном случае запускается скрипт /путь_до_скрипта. Если такого скрита нет, то необходимо отключить эту опцию. Служба smartd будет ждать, пока скрипт не завершит свою работу. Эта опция полезна, когда нужно провести некие действия с сообщением или выбрать другой почтовый клиент (по умолчанию /usr/bin/mail).
  • -M test – Для тестирования отправки сообщения добавляем опцию, которая позволяет отправить тестовое письмо при старте службы smartd. 

Проверка синтаксиса конфигурационного файла:

# smartd -c /etc/smartmontools/smartd.conf -q onecheck

Либо включением debug-режима:

# smartd -d

Выход с debug-режима — Ctrl+\. Используя Ctrl+C – файл конфигурации будет перечитан в реальном времени.

Сохраните изменения в текстовом редакторе и перезапустите smartd службу:

# systemctl restart smartd

После того, как получили тестовое письмо от службы smart, удаляем опцию -M test, то есть приводим к виду без этой опции:

/dev/sda -o on -S on -a -s (L/../../6/06) -m root -M exec /путь_до_скрипта
/dev/sdb -o on -S on -a -s (L/../../7/06) -m root -M exec /путь_до_скрипта

Также можно добавить опцию:

-M diminishing

Эта опция постоянно напоминает об ошибке (через каждых 2*N дней, то есть 1-го числа, второго, четвертого, восьмого и так далее), по умолчанию (если эта опция отключена) письмо о проблеме придет только один раз! При -M diminishing нужно отключить опцию -M exec /путь_до_скрипта

/dev/sda -o on -S on -a -s (L/../../6/06) -m root -M diminishing
/dev/sdb -o on -S on -a -s (L/../../7/06) -m root -M diminishing

Сохраните изменения в текстовом редакторе и перезапустите smartd службу:

# systemctl restart smartd

11. Планирование графика проверки устройств.

Также можно запланировать тесты по своему графику, для этого используйте опцию -s и регулярное выражение типа T/MM/ДД/ДН/ЧЧ, где:

Здесь T — тип/вид теста:

  • L — длинный тест;
  • S — короткий тест;
  • C — тест перемещения (ATA);
  • O — оффлайн тест.

Остальные символы определяют дату и время теста:

  • ММ — месяц года (две цифры в диапазон 01-12);
  • ДД — день месяца. (две цифры в диапазоне 01-31);
  • ЧЧ — время в часах (две цифры в диапазоне 00-23);
  • ДН — день недели от 1 — понедельника до 7 — воскресенья;
  • MM, ДД и ЧЧ — указываются двумя цифрами.

Точка ‘ . ‘ в этих местах означает любой единичный символ.

Выражения типа ‘(A|B|C)‘ определяет любое из трех указанных значений A, B или C. Выражение внутри квадратных кавычек такие как [1-5] определяет диапазон ( от 1 до 5 включительно).

Например, чтобы выполнять полную проверку жесткого диска CentOS 7 каждый рабочий день в час дня добавьте опцию -s в строчку конфигурации вашего устройства:

/dev/sdb -m myemail@mydomain.com -M once -s (L/../../[1-5]/13)

Если несколько дисков, то добавляем аналогичные строки только меняем имена устройств /dev/sdb на имя другого диска.

Если вы хотите чтобы утилита сканировала и проверяла все устройства, которые есть в системе используйте вместо имени устройства директиву DEVICESCAN:

DEVICESCAN -m myemail@mydomain.com -M once -s (L/../../[1-5]/13)

12. Синтаксис из smartd.conf.

Для качественного и успешного использования программного обеспечения нужно уметь его правильно настраивать, для этого требуется знать инструкцию, которую заботливо написали для нас разработчики.

Пример конфигурационного файла smartd.conf от 2015-08-27, который кто-то перевел на досуге для своего личного использования.

# smartd будет повторно читать файл конфигурации, если он получает HUP сигнал.

# Файл дает список устройств для мониторинга с помощью smartd, с одним устройство на строку. Текст после хэша ( # ) игнорируется, и вы можете использовать пробелы и вкладки для пробелов. Вы можете использовать ‘\‘ для продолжения строк.

# Вы можете определить, какие жесткие диски находятся в вашей системе с помощью поиска в /proc/ide или в /proc/scsi.

# Опция DEVICESCAN означает, что программа проигнорирует все строки с описанием устройств, которые будут перечислены в тексте файла конфигурации и при запуске просканирует только устройства ATA и SCSI. Для найденных устройств будут применены нижеперечисленные директивы. Для большинства пользователей рекомендуется закомментировать эту строку и явно перечислить устройства нуждающиеся в мониторинге.

# DEVICESCAN -H -m root -M exec /usr/libexec/smartmontools/smartdnotify -n standby,10,q

# Альтернативная настройка для игнорирования отчетов о температуре и часах включения питания в системном журнале.

# DEVICESCAN -I 194 -I 231 -I 9

# Альтернативная настройка для сообщения информации о температуре в системном журнале.

# DEVICESCAN -R 194 -R 231 -I 9

# Альтернативная настройка для сообщения о изменениях температуры >=5 градусов Цельсия и минимальная/максимальная температура.

# DEVICESCAN -I 194 -I 231 -I 9 -W 5

# Первый диск ATA/SATA или SCSI/SAS. Контролируйте все атрибуты, включите автоматический онлайн-сбор данных, автоматическое автосохранение атрибутов и начните короткую самопроверку каждый день между 2-3 часами ночи и продолжительную самопроверку по субботам с 3 до 4 утра.

# /dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03)

# Мониторинг S.M.A.R.T. состояния, журнал ошибок ATA, журнал самопроверки и отслеживание изменений во всех атрибутах, кроме атрибута 194.

# /dev/sdb -H -l error -l selftest -t -I 194

# Контролируйте все атрибуты, кроме нормализованной температуры (обычно 194), но отслеживать изменения температуры >=4 градуса Цельсия, сообщать о температурах >=45 градусов Цельсия и изменения в исходном значении Reallocated_Sector_Ct(5). Отправляйте почту при S.M.A.R.T. сбоях или при температуре >=55 градусов Цельсия.

# /dev/sdc -a -I 194 -W 4,45,55 -R 5 -m admin@example.com

# ATA диск может отображаться в операционной системе как SCSI-устройство. Если SCSI для ATA Translation (SAT) посредник, который находится между операционной системой и устройством, то это можно отметить с помощью опции ‘-d sat‘. Такая ситуация может быть обычным явлением с дисками SATA в средах SAS и FC.

# /dev/sda -a -d sat

# Очень тихая проверка. Сообщения только о состоянии S.M.A.R.T. здоровья, если он не работает. В этом случае отправляется электронное письмо.

# /dev/sdc -H -C 0 -U 0 -m admin@example.com

# Первые два SCSI диска. Это позволит контролировать все, что может видеть smartd монитор. Начните расширенные самотесты по средам с 6 до 7 вечера и воскресенья между 1-2 часами утра.

# /dev/sda -d scsi -s L/../../3/18
# /dev/sdb -d scsi -s L/../../7/01

# Мониторинг четырех ATA дисков, подключенных к контроллеру 3ware 6/7/8000, который использует на 3w-xxxx драйвер. Начинайте длительные самотесты по воскресеньям между 1-2, 2-3, 3-4 часами, и 4-5 утра.

Примечание: начиная с серии ядер Linux 2.6, интерфейс /dev/sdX является устаревшим. Вместо этого используйте интерфейс символьного устройства /dev/tweN. Например, /dev/twe0, /dev/twe1 и так далее.

# /dev/sdc -d 3ware,0 -a -s L/../../7/01
# /dev/sdc -d 3ware,1 -a -s L/../../7/02
# /dev/sdc -d 3ware,2 -a -s L/../../7/03
# /dev/sdc -d 3ware,3 -a -s L/../../7/04

# Мониторинг двух ATA дисков, подключенных к контроллеру 3ware 9000, который использует драйвер 3w-9xxx (Linux, FreeBSD). Начните длительные самотесты по вторникам между 1-2 и 3-4 часами утра.

# /dev/twa0 -d 3ware,0 -a -s L/../../2/01
# /dev/twa0 -d 3ware,1 -a -s L/../../2/03

# Мониторинг двух SATA (не SAS) дисков, подключенных к контроллеру 3ware 9000, который использует драйвер 3w-sas (Linux). Начните длительные самотесты по вторникам между 1-2 и 3-4 часами утра. Вместо этого следует использовать на FreeBSD /dev/tws0.

# /dev/twl0 -d 3ware,0 -a -s L/../../2/01
# /dev/twl0 -d 3ware,1 -a -s L/../../2/03

# То же самое, что и в Windows. Опция ‘-d 3ware,N‘ не требуется, номер диска (порта) указывается в имени устройства.
# Примечание: В Windows DEVICESCAN работает также для контроллеров 3ware.

# /dev/hdc,0 -a -s L/../../2/01
# /dev/hdc,1 -a -s L/../../2/03

# Мониторинг трёх ATA дисков непосредственно подключен к HighPoint RocketRAID. Начинайте долго самотестирование по воскресеньям между 1-2, 2-3 и 3-4 часами утра.

# /dev/sdd -d hpt,1/1 -a -s L/../../7/01
# /dev/sdd -d hpt,1/2 -a -s L/../../7/02
# /dev/sdd -d hpt,1/3 -a -s L/../../7/03

# Мониторинг двух ATA дисков, подключенных к тому же PMPort, который подключен к HighPoint RocketRAID. Начинайте длительные самотесты по вторникам с 1-2 до 3-4 часов утра.

# /dev/sdd -d hpt,1/4/1 -a -s L/../../2/01
# /dev/sdd -d hpt,1/4/2 -a -s L/../../2/03

# Список директив для этого конфигурационного файла.

  • -d TYPE Тип устройства: ata, scsi, marvell, removable, 3ware, N и так далее.
  • -T TYPE допустимое отклонение: normal, permissive.
  • -o VAL разрешены/запрещены автономные тесты (on/off).
  • -S VAL разрешено/запрещено автосохранение атрибутов (on/off).
  • -n MODE Не проверять. Один из режимов: never, sleep, standby, idle.
  • -H Мониторить S.M.A.R.T. статус. Уведомлять только при ошибках.
  • -l TYPE Мониторить логи S.M.A.R.T. Режимы: error, selftest.
  • -f Монитор отказа для любых атрибутов ‘Usage‘.
  • -m ADD Отсылать на почтовый ящик сообщения с событиями для -H, -l error, -l selftest, и -f.
  • -M TYPE Изменение поведения отправки е-майлов (смотрите man).
  • -s REGE Запустить тест когда дата совпадает с регулярным выражением (смотрите man).
  • -p Сообщать о изменениях в ‘Prefailure‘ атрибутах.
  • -u Сообщать о изменениях в ‘Usage‘ атрибутах.
  • -t Эквивалентно -p и -u директивам.
  • -r ID Также сообщать ‘RAW‘ значения атрибутов ID с -p, -u или -t.
  • -R ID Следить за изменениями в атрибуте IDRaw‘ значения -p, -u или -t.
  • -i ID Игнорировать атрибут ID для -f директивы.
  • -I ID Игнорировать атрибут ID для -p, -u или -t директивы.
  • -C ID Рапортовать если счётчик ‘ждущих’ секторов не равен нулю.
  • -U ID Рапортовать если счётчик `некорректируемых` секторов не равен нулю.
  • -W D,I,C Мониторонг температуры D)ifference, I)nformal limit, C)ritical limit.
  • -v N,ST Модифицировать метку для атрибута N (смотрите man).
  • -a По умолчанию: эквивалентно -H -f -t -l error -l selftest -C 197 -U 198.
  • -F TYPE Для ошибок в прошивке. Значения: none, samsung.
  • -P TYPE Предустановки для диска: use, ignore, show, showall.
  • # Comment: Текст после хэша будет проигнорирован обработчиком команд.
  • \ Знак переноса строки.
  • Идентификатор атрибута — это десятичное целое число 1 < = ID <= 255 за исключением -C и -U, где ID = 0 отключает их.
  • Все директивы, кроме -d, -m и -M, реализуются только для устройств ATA.
  • Если тестовая строка DEVICESCAN является первым незафиксированным текстом затем smartd будет сканировать устройства. DEVICESCAN может сопровождаться любыми желаемыми директивами.

13. Оригиналы источников информации.

  1. iwsm.ru «Linux: проверка диска».
  2. losst.ru «Проверка накопителя на битые секторы в Linux».
  3. losst.ru «Проверка жесткого диска в Linux».
  4. lissyara.su «Мониторинг состояния жёсткого диска при помощи smartmontools».
  5. kamaok.org.ua «Установка и настройка smartmontools для мониторинга состояния жесткого диска».

Читайте также: