Блог gigimon'а

Узнаем температуру винчестеров в Linux и FreeBSD

Очень часто для мониторинга работы системы требуется узнавать температуру жестких дисков, для этого в Linux и FreeBSD существуют разные программы.

В Linux, мы будем использовать программу hddtemp,  а во FreeBSD - smartctl.

  1. Использование в Linux

Для начала установим данный пакет. В Gentoo Linux потребуется:

emerge hddtemp

После установки пакета, его настройки не требуется, а можно сразу узнавать температура винтов.

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

hddtemp /dev/vint

где /dev/vint ваш жесткий диск (например: dev/sda)

После ввода команды, получим:

trantor ~ # hddtemp /dev/sda
/dev/sda: ST31000340AS: 36°C

Также, полезным является ввод нескольких жестких дисков:

trantor ~ # hddtemp /dev/sda /dev/sdb
/dev/sda: ST31000340AS: 36°C
/dev/sdb: ST3802110A: 34°C

У hddtemp есть еще 1 достаточно интересная функция для мониторинга, это возможнонсть висеть демоном на опредленном порту и по запросу, отдавать страницу с данными о температуре винтов в CSV формате. Для этого требуется команда:

trantor ~ # hddtemp -4d /dev/sda /dev/sdb

где -4d означает режим демона, но только по протоколу IPv4. По умолчанию, он занимает порт 7634 и если на него зайти, то увидим:

|/dev/sda|ST31000340AS|36|C||/dev/sdb|ST3802110A|34|C|
  1. Использование smartctl во FreeBSD

Для установки делаем следующее:

cd /usr/ports/smartmontools

make install clean

После этого, нам становится доступна команда smartctl, которая будет показывать информацию о винтах. Данная программа показывает не только температуру, но и всю S.M.A.R.T информацию жесткого диска (но нас это сейчас не интересует).

Для того, чтобы узнать температура жесткого диска вводим в консоли:

smartctl -a /dev/ad0 | grep Temp | awk -F " " '{print $10}'

Результатом работы будет выведена температура диска в градусах Цельсия.

К сожалению, на некоторых винчестерах температуа может не показаться, поэтому требуется использовать вывод полной информации S.M.A.R.T

smartctl -a -s on /dev/ad0 |  grep Temp | awk -F " " '{print $10}'

34

Помимо самой команды smartctl,  в системе появилась smartd, которая позволяет запустить демона для ведения логов о температуре в syslogd.

2008 — 2018