Hddtemp (Русский)
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