Температура жесткого диска

HDD TemperatureРано или поздно все задаются вопросом какая же температура у моего винчестера? Хорошо бы озаботиться этим вопросом пораньше, а не когда винчестер начнет издавать стрекочущие звуки или при загрузке компьютера вы вдруг увидите SMART ERROR. Знайте, что оптимальная температурой винчестера это примерно до 45°C, а лучше в пределах 40°С и ниже. Температура под 50°С значительно может сократить срок службы винчестера, но это как повезет.

HDDTemp (только в linux).

Самый простой способ узнать температуру, это использовать программу hddtemp. Программа популярная и имеется в каждом репозитарии различных дистрибутивов. Возможно с сайта вам придется только скачать и обновить hddtemp.db - это база данных по жестким дискам для этой программы (файл обычно находиться по пути /etc/hddtemp.db).
Узнать температуру можно командой "hddtemp /dev/имя_устройства". Команду следует выполнять от пользователя root или через sudo, т.к. информация о температуре берется из SMART состояния диска, а доступ к SMART только от суперпользователя системы.


# hddtemp /dev/sdc1
/dev/sdc1: ST3400832A                              ─: 43°C

Если вашего диска не будет в базе данных hddtemp, то программа выдаст сначала предупреждение, что информация о диске отсутствует, а потом предполагаемую температуру диска.


# hddtemp /dev/sdc1
ВНИМАНИЕ: Диск /dev/sdc не включен в базу данных поддерживаемых приводов.
ВНИМАНИЕ: Но с использованием распространенных параметров он что-то выдает.
ВНИМАНИЕ: Заметьте, что показанная температура может таковой не являться.
ВНИМАНИЕ: См. опции --help, --debug и --drivebase.
ВНИМАНИЕ: И не забудьте, что можно добавить привод в hddtemp.db
/dev/sdc: ST3400832A                              ─:  43°C или °F

От вас требуется проверить, верны ли данные о температуре, и если все нормально добавить информацию о своем диске в базу hddtemp.db. А чтобы это узнать, надо самому посмотреть в SMART и увидеть данные температуры там. Но об этом во второй части статьи в разделе smartmontools.
Программа hddtemp может работать в режиме демона и выдавать постоянно информацию через определенный порт. По умолчанию порт 7634.


# hddtemp -d /dev/sdc -p7634
# telnet localhost 7634 Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
|/dev/sdc|ST3400832A                              ─|43|C|
Connection closed by foreign host

Теперь температуру можно снимать удаленно с любого компьютера сети, а задействуя интерактивные скрипты, можно и автоматизировать этот процесс.
У программы hddtemp есть и другие параметры, их можно посмотреть командой "hddtemp --help".

Smartmontools

Вот это уже серьезный проект и полные данные о здоровье вашего винчестера. Информацию о проекте можно получить на официальной странице smartmontools. Программа работает под всеми unix системами.
Обновляем ваши порты или репозитарии и ставим этот пакет.
Чтобы посмотреть всю доступную информацию о жестком диске выполняем от root или sudo


# smartctl --all /dev/имя_устройства_hdd

Вывод команды будет впечатляющим показать


Я не буду останавливаться на параметрах, т.к. SMART винчестеров это целая тема. Нас интересует только строка


194 Temperature_Celsius     0x0022   043   052   000    Old_age   Always       -       43 (0 21 0 0)

Это значит температура диска 43°C. Если немного усложнить команду, то можно сразу получать температуру


# smartctl --all /dev/sda |grep ^194| awk '{print $10}'
43

Функций в команде smartctl очень много. Изучайте маленькую подсказку "smartctl --help" или читайте "man smartctl".
Например, чтобы не выводить огромное количество данных из SMART, а только часть атрибутов, откуда мы берем температуру, воспользуемся командой


#smartctl -A /dev/sda
smartctl version 5.38 [i486-slackware-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== 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   073   063   006    Pre-fail  Always       -       21663510
  3 Spin_Up_Time            0x0003   099   098   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       127
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   079   073   030    Pre-fail  Always       -       97182772
  9 Power_On_Hours          0x0032   081   081   000    Old_age   Always       -       17206
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   037   020    Old_age   Always       -       59
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   057   048   045    Old_age   Always       -       43 (Lifetime Min/Max 34/48)
194 Temperature_Celsius     0x0022   043   052   000    Old_age   Always       -       43 (0 21 0 0)
195 Hardware_ECC_Recovered  0x001a   056   035   000    Old_age   Always       -       21663510
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       -       0

Если задействовать режим демона smartd и настроить конфиг /etc/smartd.conf, то можно мониторить изменения в SMART жестких дисков, получая изменения данных прямо по электронной почте.

Еще хочется сказать, что с помощью smartctl можно получать температуру с винчестеров, которые находятся в RAID. Самое главное, чтобы контроллеры поддерживали технологию SMART, а иначе никак.
Для составления команды получения SMART придется немного изучить руководство smartmontools, т.к. к жестким дискам, которые находятся на контроллере требуются особые параметры smartctl.
Например у меня есть массив RAID1 на контроллере Adaptec 5805Z. Винчестер в системе видится как sda, хотя вы понимаете, что на самом деле винчестеров два. Показания атрибутов для первого и второго винчестеров получаем через команды


#smartctl -A -d sat /dev/sg1
#smartctl -A -d sat /dev/sg2

Визуальное отображение параметров температуры винчестеров можно получать с помощью таких программ gkrellm или conky. Но об этом как нибудь в другой раз. Все графические программы сами не умеют получать данные о температурах и отображают данные, получаемые через hddtemp или smartmontools.

Статья просмотрена 20 645 раз
Запись опубликована в рубрике Программы с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>