Главная > Программы > HDDTemp Контроль температуры жесткого дискаКогда я установил на сервер новый жесткий диск Seagate ST31500341AS объемом 1,5Тб для хранения личного фото-архива, я обнаружил, что этот диск прилично греется. Давно известно, что продолжительность жизни жестких дисков во многом зависит от температурного режима работы. Для снижения температурной нагрузки я установил на диск дешевый вентилятор Coolcox HD8015-12 за 58 руб. Вопреки моим скептическим ожиданиям это решение значительно снизило температуру жесткого диска, не увеличив при этом общий уровень шума. Осталось только наладить температурный контроль за работой жестких дисков. Для этого в Linux'е есть пакет hddtemp. Для установки его на Debian Linux необходимо выполнить команду: # apt-get install hddtemp Использование программы очень простое # hddtemp /dev/sda /dev/sda: ST31500341AS: 32°C Но у меня два жестких диска и мне бы хотелось вывести эту информацию в Web-интерфейс Умного Дома. Была бы задача, а решение в среде Linux всегда найдется. При установке hddtemp по умолчанию запускается tcp-сервис hddtemp, доступ к которому осуществляется через порт 7634. Таким образом информацию о температуре дисков можно получить, например, с помощью программы telnet # telnet localhost 7634 |/dev/hda|WDC WD800JB-32JJC0|39|C||/dev/sda|ST31500341AS|32|C| А раз так, то можно написать простенькую программу на PHP для вывода этой информации в табличном HTML виде на Web-сервер. <?
$host="localhost";
$h=fsockopen($host, 7634);
while(!feof($h) )
$http_response.=fgets($h, 4096);
$hdd_list = explode("||", preg_replace("/^|||$/", "", $http_response));
echo "<table border=1>";
for ( $i = 0; $i < count($hdd_list); $i++ )
{
$hdd_fields = explode("|", $hdd_list[$i]);
echo "<tr>";
for ( $j = 0; $j < count($hdd_fields); $j++ )
echo "<td>$hdd_fields[$j]</td>";
echo "</tr>";
}
echo "</table>";
fclose($h);
?>
В результате получаем что-то вроде этого... ![]() Нетрудно модифицировать скрипт для записи данных в MySQL базу с последующим построением графиков или создания контролирующих программ, уведомляющих тем или иным способом о перегреве. Контроль температуры процессора и системной платыВажно иметь представление о температуре жестких дисков, но не менее важно мониторить температуру других частей компьютера, к которым, прежде всего, относятся процессор и чипсет. Для этого нам потребуется пакет lm_sensors. # apt-get install lm-sensors После установки пакета необходимо произвести поиск поддерживаемого оборудования. # sensors-detect Для моей материнской платы P4P800 был найден чип Winbond W83627HF, модуль которого был прописан в "автозагрузку" /etc/modules # modprobe w83627hf Далее нужно только выполнить команду # sensors w83627thf-isa-0290 Adapter: ISA adapter VCore: +1.58 V (min = +0.00 V, max = +3.84 V) +12V: +12.28 V (min = +9.18 V, max = +7.30 V) ALARM +3.3V: +3.36 V (min = +1.18 V, max = +2.93 V) ALARM +5V: +5.07 V (min = +3.41 V, max = +0.00 V) ALARM -12V: +6.06 V (min = -14.91 V, max = -0.11 V) ALARM V5SB: +4.97 V (min = +1.72 V, max = +0.46 V) ALARM VBat: +3.20 V (min = +0.27 V, max = +0.19 V) ALARM fan1: 0 RPM (min = -1 RPM, div = 128) ALARM CPU Fan: 2789 RPM (min = -1 RPM, div = 4) ALARM fan3: 0 RPM (min = 251 RPM, div = 128) ALARM M/B Temp: +36.0°C (high = +81.0°C, hyst = +0.0°C) sensor = thermistor CPU Temp: +44.0°C (high = +80.0°C, hyst = +75.0°C) sensor = diode temp3: -48.0°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor cpu0_vid: +1.525 V beep_enable:enabled Вытащить эти данные в Web-интерфейс можно аналогично предыдущему способу. А можно и гораздо проще. Например, таким образом: <?
echo "<pre>";
passthru("sensors");
echo "</pre>";
?>
Использован материал с сайта: http://ab-log.ru/smart-house/linux/server_temp_control
Главная > Программы > HDDTemp |