# Hddtemp (Русский)

Ссылки по теме

- lm sensors (Русский)

Эта страница нуждается в сопроводителе

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

hddtemp это небольшая утилита (включающая в состав службу), позволяющая узнать температуру жесткого диска посредством S.M.A.R.T. (для устройств, поддерживающих эту технологию).

## Установка

Установите пакет hddtemp, доступный в официальных репозиториях.

## Использование

Hddtemp требует привилегий суперпользователя. Команда `hddtemp` должна сопровождаться указанием как минимум одного физического устройства или нескольких, разделяемых пробелами. Например:

    # hddtemp /dev/sda /dev/sdb ... /dev/sdz

## Служба

Запуск службы позволит получить информацию о температуре по TCP/IP, использовать, например, со скриптами.

Эта служба контролируется `hddtemp.service`.

Примечание: аргументы `hddtemp` указаны в файле юнита `/usr/lib/systemd/system/hddtemp.service`. Это особенно важно при использовании нескольких дисков,так как по умолчанию включено отслеживание только для `/dev/sda`. Измените `ExecStart`, отредактировав `hddtemp.service`:

- Создайте каталог в `/etc/systemd/system`:

    # mkdir /etc/systemd/system/hddtemp.service.d

- Создайте файл `customexec.conf`, в котором понадобится указать физические диски для отслеживания, например:

    /etc/systemd/system/hddtemp.service.d/customexec.conf

    [Service]
    ExecStart=
    ExecStart=/usr/bin/hddtemp -dF /dev/sda /dev/sdb /dev/sdc

Вы также можете использовать скрипт автоматического создания, который при помощи smartmontools обнаруживает все жесткие диски, поддерживаемые hddtemp; в результате чего сгенерированный шаблон файла `customexec.conf` будет отображаться в стандартном выводе.

- Перезагрузите файл юнита:

    # systemctl --system daemon-reload

- Перезапустите службу hddtemp:

    # systemctl restart hddtemp

Чтобы получить информацию о температуре, подключитесь к серверу со включеной службой, которая прослушивает порт 7634.

Посредством inetutils:

    $ telnet localhost 7634

Посредством gnu-netcat:

    $ nc localhost 7634

Вывод будет примерно следующий:

    |/dev/sda|ST3500413AS|32|C||/dev/sdb|ST2000DM001-1CH164|36|C|

Более читаемый вариант:

    $ nc localhost 7634 |sed 's/|//m' | sed 's/||/ \n/g' | awk -F'|' '{print $1 " " $3 " " $4}'

    /dev/sda 32 C
    /dev/sdb 36 C

Для получения дополнительной информации смотрите man-страницу:

    $ man hddtemp

## Мониторинг

Hddtemp может быть встроен в различные системы мониторинга.

## Solid State Drives

Для получения значения температуры Hddtemp обычно считывает поле `194` данных S.M.A.R.T. жесткого диска. В SSD накопителях информация о температуре обычно хранится в поле `190`. Можно посмотреть этот параметр, выполнив следующие команды:

    $ smartctl -a /dev/sdX

или

    $ hddtemp --debug /dev/sdX

Другой способ - вручную обновить базу данных hddtemp, указав требуемый накопитель с параметрами поля и единицы измерения в `/usr/share/hddtemp/hddtemp.db`. Например:

    $ echo '"Samsung SSD 840 EVO 250GB" 190 C "Samsung SSD 840 EVO 250GB"' >> /usr/share/hddtemp/hddtemp.db

Categories:

- Русский
- Status monitoring and notification (Русский)