Как узнать температуру HDD в Ubuntu Server

Сегодн в статье научимся узнавать температуру жестких дисков (HDD) в Ubuntu Server, данная инструкция будет актуальна и для других дистрибутивов Linux.






В этой заметке установим hddtemp и узнаем, как с помощью неё можно посмотреть температуру жесткого(их) диска(ов). Так же рассмотрим возможность добавления в базу hddtemp SSD диска которого нет в его базе.




Установка hddtemp




Прежде всего установим саму утилиту. Открываем терминал и набираем следующее:




sudo apt install hddtemp




Попробуем запустить:




sudo hddtemp /dev/sda




/dev/sdd: WDC WD2000FYYZ-01UL1B2: 35°C




В результате мы получили достаточно длинную строку с описанием и значением. В то время как для например скриптов нам нужно голое значение.




Проще всего его можно получить запустив hddtemp с ключом -n.
Что избавит нас от awk, sed и т.п.




sudo hddtemp -n /dev/sda




Данными примерами мы посмотрели температуру жесткого диска HDD, а если посмотреть на SSD. Давайте посмотрим его температуру:




sudo hddtemp  /dev/sdb




/dev/sda: XrayDisk 120GB: 41°C




Как видим SSD тоже прекрасно определился программой и выдал нам температуру. Но что делать, если вывод будет следующим:




WARNING: Drive /dev/sda doesn't seem to have a temperature sensor.
WARNING: This doesn't mean it hasn't got one.
WARNING: If you are sure it has one, please contact me (hddtemp@guzu.net).
WARNING: See --help, --debug and --drivebase options.
/dev/sda: Samsung SSD 860 EVO 500G B ▒@: no sensor




Похоже на то, что данных о SSD диске нет в базе.
При запуске с ключом --debug выведет поля SMART.
Температура HDD выводится в поле со значением 194, а как же обстоят дела у SSD диска:




sudo hddtemp --debug /dev/sda




================= hddtemp 0.3-beta15 ==================
Model: Samsung SSD 860 EVO 500G B              ▒@

field(5)         = 0
field(9)         = 76
field(12)        = 6
field(177)       = 0
field(179)       = 0
field(181)       = 0
field(182)       = 0
field(183)       = 0
field(187)       = 0
field(190)       = 30
field(195)       = 0
field(199)       = 0
field(235)       = 2
field(241)       = 45

If one of the field value seems to match the temperature, be sure to read
the hddtemp man page before sending a report (section REPORT). Thanks.




В поле 190 стоит цифра 30, что похоже на температуру нашего диска.




Добавим наш SSD диск в базу командой из под root:




sudo su




echo '"Samsung SSD 860 EVO 500G" 190 C "Samsung SSD 860 EVO 500G"' >> /etc/hddtemp.db




Проверим:




sudo hddtemp -n /dev/sda




Из указанных примеров видно, что для доступа к жестким дискам нужен рутовый аккаунт.
По причине этого мы имеем ограничение по использованию. Например с Zabbix.
Но hddtemp может работать как демон с доступом по TCP для любого пользователя.
Для запуска демона прежде всего нужно определится какие именно диски он будет опрашивать.
По умолчанию опрос делается первого диска sda, но мы можем это изменить, меняем конфигурацию:




sudo systemctl edit hddtemp.service




[Service]
ExecStart=
ExecStart=/usr/sbin/hddtemp -d /dev/sdc -l 127.0.0.1 -p 7634




Перезапустим:




sudo systemctl restart hddtemp.service




Проверим:




telnet localhost 7634




Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
|/dev/sda|WDC WD2000FYYZ-01UL1B2|33|C|Connection closed by foreign host.




Выводит, но пользоваться этим неудобно, поэтому создадим простой скрипт:




nano my_hddtemp.sh




#!/bin/sh
myDisk=`echo "" | netcat -n 127.0.0.1 7634 |sed 's/|//m' | sed 's/||/ n/g' | awk -F'|' '{print $3}'`
echo $myDisk




Делаем его исполняемым:




sudo chmod +x my_hddtemp.sh




Запускаем:




./my_hddtemp.sh




На этом все.




P.S. Еще одна полезная команда посмотреть smart информацию




smartctl -a /dev/sda -d sat+cciss,Х



[endtxt]




RSS



Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.


2021-07-02T17:07:46
HDD/SSD