Hddtemp (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи 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