Код: Выделить всё
$color = "grey";
sg('ThisComputer.CPUtip', $cpu_tip);
$g_line[0] = " ";
$g_line[1] = " _";
$g_line[2] = " _ _";
$g_line[3] = " _ _ _";
$g_line[4] = " _ _ _ _";
$g_line[5] = " _ _ _ _ _";
$g_line[6] = " _ _ _ _ _ _";
$g_line[7] = " _ _ _ _ _ _ _";
$g_line[8] = " _ _ _ _ _ _ _ _";
$g_line[9] = " _ _ _ _ _ _ _ _ _";
$g_line[10] = " _ _ _ _ _ _ _ _ _ _";
$g_line[11] = " _ _ _ _ _ _ _ _ _ _ _";
$g_line[12] = " _ _ _ _ _ _ _ _ _ _ _ _";
$g_line[13] = " _ _ _ _ _ _ _ _ _ _ _ _ _";
$g_line[14] = " _ _ _ _ _ _ _ _ _ _ _ _ _ _";
$g_line[15] = "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _";
// -------------------- Температура процессора --------------------------------------------------------
$cpu_temp=shell_exec('cat /sys/class/thermal/thermal_zone0/temp') / 1000;
$cpu_temp=round($cpu_temp,0);
$maxtemp = 75;
$mintemp = 25;
$kf = ($maxtemp - $mintemp)/15; // 15 это делений на индикаторе
sg('ThisComputer.CPUtemp', $cpu_temp);
$t15 = round (($cpu_temp - $mintemp) / $kf); // чтобы шкала начиналась с $mintemp
if ($cpu_temp <= $mintemp) {
$t15 = 0; // и оганичим нижнее значение на 0
} elseif ($cpu_temp >= $maxtemp) {
$t15 = 15; // ограничим максимум на 15 делений
}
$t15_line = $g_line[$t15];
sg('ThisComputer.CPUtemp_-1', $t15_line);
// и цвет для неё
if (($cpu_temp >= 0) && ($cpu_temp < 45)) {
$color = 'lime';
} else if (($cpu_temp >= 45) && ($cpu_temp < 60)) {
$color = 'greenyellow';
} else if (($cpu_temp >= 60) && ($cpu_temp < 70)) {
$color = 'yellow';
} else if ($cpu_temp >= 70) {
$color = 'red';
} else {
$color = 'grey';
}
sg ('ThisComputer.CPUtemp_color', $color);
sg ('ThisComputer.CPUtemp_color_-1', $color);
// сдвинем значения с вылетом последнего
for ($i = 9; $i >= 0; $i--) {
$j = $i - 1;
sg ('ThisComputer.CPUtemp_'.$i, gg('ThisComputer.CPUtemp_'.$j));
sg ('ThisComputer.CPUtemp_color_'.$i, gg('ThisComputer.CPUtemp_color_'.$j));
}
//---------------------- Загрузка процессора -----------------------------------------------------
$cpu_load=shell_exec('cat /proc/loadavg');
$pos1 = strpos($cpu_load," ");
$pos2 = strpos($cpu_load," ",$pos1+1);
$pos3 = strpos($cpu_load," ",$pos2+1);
$cpu_load1 = substr($cpu_load,0,$pos1);
$cpu_load5 = substr($cpu_load,$pos1+1,$pos2-$pos1-1);
$cpu_load15 = substr($cpu_load,$pos2+1,$pos3-$pos2-1);
$cpu_load = round($cpu_load1*100/5);
sg('ThisComputer.CPUload', $cpu_load);
//sg('ThisComputer.CPUload1', $cpu_load1);
//sg('ThisComputer.CPUload5', $cpu_load5);
//sg('ThisComputer.CPUload15', $cpu_load15);
$l15 = round ($cpu_load / 6.66); // чтобы из 15 значений 100/15 = 6,(6)
$l15_line = $g_line[$l15];
sg('ThisComputer.CPUload_-1', $l15_line);
// и цвет для неё
if (($cpu_load >= 0) && ($cpu_load < 30)) {
$color = 'lime';
} else if (($cpu_load >= 30) && ($cpu_load < 45)) {
$color = 'greenyellow';
} else if (($cpu_load >= 45) && ($cpu_load < 60)) {
$color = 'yellow';
} else if ($cpu_load >= 60) {
$color = 'red';
} else {
$color = 'grey';
}
sg ('ThisComputer.CPUload_color', $color);
sg ('ThisComputer.CPUload_color_-1', $color);
// сдвинем значения с вылетом последнего
for ($i = 9; $i >= 0; $i--) {
$j = $i - 1;
sg ('ThisComputer.CPUload_'.$i, gg('ThisComputer.CPUload_'.$j));
sg ('ThisComputer.CPUload_color_'.$i, gg('ThisComputer.CPUload_color_'.$j));
}
// -------------------- Использование Флешк-карты -------------------------------------------------------------
$bytes = disk_free_space(".");
$si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
$base = 1024;
$class = min((int)log($bytes , $base) , count($si_prefix) - 1);
$temp = round($bytes / pow($base,$class)) . ' ' . $si_prefix[$class];
setGlobal('ThisComputer.DISKused', $temp);
$color = ($disk_used < 80) ? "lime" : "red";
sg ('ThisComputer.DISKused_color', $color);
// -------------------- преобразование Uptime -----------------------------------------------------------
$uptime = gg('ThisComputer.uptime');
$uptime_str = secondsToString($uptime);
sg ('ThisComputer.uptime_str', $uptime_str);
/**
* Секунды в строку
* Эта функция возвращает кол-во секунд преобразованное в дни, часы, минуты, секунды
*
* @param integer $seconds всего время в секундах.
* @return string "1234567" возвращает "14 дн., 6 час., 56 мин., 7 сек.".
*/
function secondsToString($seconds) {
$result = '';
if ($seconds >= 86400) {
$days = floor($seconds / 86400);
$seconds = $seconds % 86400;
$result = $days.' д., ';
}
if ($seconds >= 3600) {
$hours = floor($seconds / 3600);
$seconds = $seconds % 3600;
$result .= $hours.' час., ';
}
if ($seconds >= 60) {
$minutes = floor($seconds / 60);
$seconds = $seconds % 60;
$result .= $minutes.' мин., ';
}
$result .= $seconds.' сек.';
return $result;
}