我們利用lm_sensors來偵測CPU溫度,作法大略如下:
安裝 lm_sensors
yum -y install lm_sensors
要系統自動偵測 sensors
/usr/sbin/sensors-detect
一路 yes 到最後
啟動daemon
/etc/init.d/lm_sensors start
打 /usr/bin/sensors 測試
如果出現溫度,就表示設定正確,可以打入下面這一行讓
chkconfig –add lm_sensors
daemon開機自動啟動
最後我們用這個 php script來偵測溫度狀況:
#!/usr/local/bin/php -q
<?php
$target=array(‘Core 0:’,’Core 1:’,’Core 2:’,’Core 3:’);
$alarm=65;
$inp=file(‘php://stdin’);
$cnt=count($inp);
$tcnt=count($target);
for ($i=0;$i<$cnt;$i=$i+1)
{
for ($j=0;$j<$tcnt;$j=$j+1)
{
if (strncmp($target[$j],$inp[$i],strlen($target[$j]))==0)
{//matched
$c=(float) substr($inp[$i],strlen($target[$j]));
//echo $c."\n";
if ($c> $alarm) //alarm on
exit(1);
break;
}
}
}
exit(0);
?>
這個script檢查四個核心的溫度,然後如果大於 $alarm 設定的溫度,就回傳 1 否則回傳0,使用的方法是
/usr/bin/sensors| /xxxdir/Temp.sh
這樣,就可以正確回傳CPU的狀況了。