Hddtemp (Русский)
hddtemp — небольшая утилита (включающая в состав службу), позволяющая узнать температуру жёсткого диска посредством S.M.A.R.T. (для дисков, поддерживающих эту технологию).
Contents
Установка
Установите пакет hddtemp.
Использование
Hddtemp требует привилегий суперпользователя. Команда hddtemp
требует указания как минимум одного физического устройства или нескольких, разделённых пробелами. Например:
# hddtemp /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdX2 ... /dev/sdXn
Для получения дополнительной информации смотрите man-страницу:
$ man hddtemp
Служба
Запуск службы позволит получать информацию о температуре по 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
Добавьте следующий текст:
/etc/systemd/system/hddtemp.service.d/<temp file>
[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 °C
в ваш конфигурационный файл conky.
Твердотельные накопители
Для получения значения температуры hddtemp обычно считывает поле 194
данных S.M.A.R.T. жёсткого диска. В SSD накопителях информация о температуре обычно хранится в поле 190
. Можно посмотреть этот параметр, выполнив следующие команды:
$ smartctl -a /dev/sdX
или
$ hddtemp --debug /dev/sdX
где X — буква диска (например a,b,c...). Воспользуйтесь lsblk
для проверки.
Другой способ — внести запись в базу данных hddtemp, указав требуемый накопитель с параметрами поля и единицы измерения в /usr/share/hddtemp/hddtemp.db
. Например:
$ echo '"Samsung SSD 840 EVO 250GB" 190 C "Samsung SSD 840 EVO 250GB"' >> /usr/share/hddtemp/hddtemp.db