Hddtemp (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи 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