Jump to content

# Hddtemp (Русский)

4 languages

- English
- Français
- 日本語
- 中文（简体）

From ArchWiki

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

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

Состояние перевода: На этой странице представлен перевод статьи Hddtemp. Дата последней синхронизации: 21 декабря 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

## Установка

Установите пакет hddtemp.

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

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

    # hddtemp /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdX2 ... /dev/sdXn

Примечание: Названия блочных устройств в `/dev/`, подобно `/dev/sdX`, неоднозначны. См. статью Persistent block device naming (Русский) для получения информации об использовании постоянных путей устройств.

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

## Служба

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

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

Чтобы получить информацию о температуре, подключитесь к серверу со включённой службой, которая прослушивает порт 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

### Изменить предопределённый диск

По умолчанию служба hddtemp отслеживает только `/dev/sda`. Если у вас несколько дисков, то вам потребуется переопределить стандартную конфигурацию мониторинга.

Необходимо предварительно узнать, какие жёсткие диски поддерживают мониторинг. Для этого можно воспользоваться smartmontools.

    # systemctl edit hddtemp.service

    [Service]
    ExecStart=
    ExecStart=/usr/bin/hddtemp --daemon --foreground /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdb --listen=127.0.0.1

Измените названия устройств, которые вы хотите отслеживать.

Сохраните изменения и выйдите из текстового редактора. systemd автоматически применит изменения и перезагрузит службу `hddtemp`.

Также можно воспользоваться скриптом auto-generate, который определит поддерживаемые жёсткие диски с помощью smartmontools и напечатает результат в стандартный поток вывода.

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

Hddtemp может быть встроен в различные системы мониторинга. Conky также собран с поддержкой hddtemp в режиме демона. Просто включите `hddtemp.service` и добавьте `$hddtemp °C` в ваш конфигурационный файл conky.

## Твердотельные накопители

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

     # smartctl --all /dev/sdx

или

     # hddtemp --debug /dev/sdx

где `/dev/sdx` — имя диска (воспользуйтесь lsblk для проверки имени).

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

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

Category:

- System monitors (Русский)