update
This commit is contained in:
@ -1,248 +0,0 @@
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
##############################
|
||||
###### DEAMON SECTION ######
|
||||
##############################
|
||||
$cron = FALSE;
|
||||
$DEBUG = FALSE;
|
||||
|
||||
# DO NOT TOUCH
|
||||
set_time_limit(0);
|
||||
$program_name = pathinfo(__FILE__, PATHINFO_FILENAME);
|
||||
$lockfile = "/var/run/${program_name}.pid";
|
||||
$service_file = __FILE__;
|
||||
openlog($program_name, LOG_PID | LOG_PERROR, LOG_LOCAL0);
|
||||
|
||||
$usage = <<<EOT
|
||||
Usage: $program_name = start the daemon
|
||||
$program_name -q = quit the program if it is running
|
||||
|
||||
EOT;
|
||||
|
||||
function debug($m){
|
||||
global $program_name, $DEBUG;
|
||||
if($DEBUG){
|
||||
$STDERR = fopen('php://stderr', 'w+');
|
||||
fwrite($STDERR, $m."\n");
|
||||
fclose($STDERR);
|
||||
}
|
||||
}
|
||||
|
||||
$background_args = "";
|
||||
if(isset($argv)){
|
||||
for ($i=0; $i <= count($argv); $i++) {
|
||||
switch ($argv[$i]) {
|
||||
case '-q':
|
||||
$quit = TRUE;
|
||||
break;
|
||||
case '--background':
|
||||
$background = TRUE;
|
||||
break;
|
||||
case '-c':
|
||||
$cron = $argv[$i+1];
|
||||
$background_args .= " ${argv[$i]} ${argv[$i+1]}";
|
||||
break;
|
||||
case '-d':
|
||||
$DEBUG = TRUE;
|
||||
$background_args .= " ${argv[$i]}";
|
||||
break;
|
||||
case '-h':
|
||||
case '--help':
|
||||
echo $usage;
|
||||
exit(0);
|
||||
# Especific switches:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Deal with cron
|
||||
if (isset($cron) && is_numeric($cron) && ! isset($quit)){
|
||||
exec("crontab -l 2>/dev/null", $crontab);
|
||||
$crontab = array_unique($crontab);
|
||||
if (! isset($quit)){
|
||||
$entry = sprintf("*/%s * * * * ${service_file}${background_args} 1> /dev/null 2>&1", $cron);
|
||||
if (! preg_grep("#${service_file}#", $crontab)){
|
||||
$crontab[] = $entry;
|
||||
debug("\nCRONTAB\n".implode("\n", $crontab)."\n");
|
||||
file_put_contents("/tmp/${program_name}.cron", implode(PHP_EOL, $crontab));
|
||||
shell_exec("crontab /tmp/${program_name}.cron");
|
||||
unlink("/tmp/$program_name.cron");
|
||||
}
|
||||
}
|
||||
unset($crontab);
|
||||
} else if (isset($quit)){
|
||||
exec("crontab -l 2>/dev/null", $crontab);
|
||||
$crontab = array_unique($crontab);
|
||||
if (preg_grep("#${service_file}#", $crontab)){
|
||||
$crontab = preg_grep("#${service_file}#", $crontab, PREG_GREP_INVERT);
|
||||
debug("\nCRONTAB\n".implode("\n", $crontab)."\n");
|
||||
file_put_contents("/tmp/${program_name}.cron", implode(PHP_EOL, $crontab));
|
||||
shell_exec("crontab /tmp/${program_name}.cron");
|
||||
unlink("/tmp/$program_name.cron");
|
||||
};
|
||||
unset($crontab);
|
||||
}
|
||||
|
||||
if (is_file($lockfile)){
|
||||
$lock_pid = file($lockfile, FILE_IGNORE_NEW_LINES)[0];
|
||||
$pid_running=preg_replace("/\s+/", "", shell_exec("ps -p ${lock_pid}| grep ${lock_pid}"));
|
||||
if (! $pid_running){
|
||||
if (! isset($quit)){
|
||||
file_put_contents($lockfile, getmypid());
|
||||
} else {
|
||||
echo "${lock_pid} is not currently running";
|
||||
unlink($lockfile);
|
||||
exit(0);
|
||||
}
|
||||
} else {
|
||||
if (isset($quit)){
|
||||
syslog(LOG_INFO, "killing daemon with PID [${lock_pid}]");
|
||||
exec("kill $lock_pid");
|
||||
unlink($lockfile);
|
||||
if (function_exists('at_exit')) at_exit();
|
||||
exit(0);
|
||||
} else {
|
||||
echo "$program_name is already running [${lock_pid}]".PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(isset($quit)){
|
||||
echo "$program_name not currently running".PHP_EOL;
|
||||
exit(0);
|
||||
} else {
|
||||
file_put_contents($lockfile, getmypid());
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($background)){
|
||||
exec("php $service_file --background $background_args 1>/dev/null ".($DEBUG ? "":"2>&1 ")."&");
|
||||
exit(0);
|
||||
} else {
|
||||
syslog(LOG_INFO, "process started. To terminate it, type: $program_name -q");
|
||||
}
|
||||
|
||||
##############################
|
||||
##### PROGRAM SECTION ######
|
||||
##############################
|
||||
$plugin = "dynamix.system.autofan";
|
||||
$config_file = "/boot/config/plugins/${plugin}/fan.conf";
|
||||
|
||||
function scan_dir($dir, $type = ""){
|
||||
$out = array();
|
||||
foreach (array_slice(scandir($dir), 2) as $entry){
|
||||
$sep = (preg_match("/\/$/", $dir)) ? "" : "/";
|
||||
$out[] = $dir.$sep.$entry ;
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
||||
function get_highest_temp($hdds){
|
||||
$highest_temp="0";
|
||||
foreach ($hdds as $hdd) {
|
||||
if (shell_exec("hdparm -C ${hdd} 2>/dev/null| grep -c standby") == 0){
|
||||
$temp = preg_replace("/\s+/", "", shell_exec("smartctl -A ${hdd} 2>/dev/null| grep -m 1 -i Temperature_Celsius | awk '{print $10}'"));
|
||||
$highest_temp = ($temp > $highest_temp) ? $temp : $highest_temp;
|
||||
}
|
||||
}
|
||||
debug("Highest temp is ${highest_temp}ºC");
|
||||
return $highest_temp;
|
||||
}
|
||||
|
||||
function get_all_hdds(){
|
||||
$hdds = array();
|
||||
$flash = preg_replace("/\d$/", "", realpath("/dev/disk/by-label/UNRAID"));
|
||||
foreach (scan_dir("/dev/") as $dev) {
|
||||
if(preg_match("/[sh]d[a-z]+$/", $dev) && $dev != $flash) {
|
||||
$hdds[] = $dev;
|
||||
}
|
||||
}
|
||||
return $hdds;
|
||||
}
|
||||
|
||||
$hdds = get_all_hdds();
|
||||
while(TRUE){ while(TRUE){
|
||||
#### DO YOUR STUFF HERE ####
|
||||
|
||||
# Load config file or die
|
||||
if(is_file($config_file)){
|
||||
$params = (is_file($config_file)) ? parse_ini_file($config_file) : array();
|
||||
extract($params, EXTR_OVERWRITE);
|
||||
} else {
|
||||
unlink($lockfile);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
# Wait probes to become ready
|
||||
if (! is_file($PWM_CONTROLLER) || ! is_file($PWM_FAN)){
|
||||
sleep(15);
|
||||
continue;
|
||||
}
|
||||
|
||||
# Set PWM_HIGH and PWM_OFF
|
||||
$PWM_HIGH = 255;
|
||||
$PWM_OFF = $PWM_LOW-5;
|
||||
|
||||
# Disable fan mininum RPM
|
||||
$FAN_RPM_MIN = file(split("_", $PWM_FAN)[0]."_min", FILE_IGNORE_NEW_LINES)[0];
|
||||
$D_FAN_RPM_MIN = ($FAN_RPM_MIN > 0) ? $FAN_RPM_MIN : FALSE;
|
||||
|
||||
# Enable speed change on fan
|
||||
$PWM_MODE=file("${PWM_CONTROLLER}_enable", FILE_IGNORE_NEW_LINES)[0];
|
||||
if($PWM_MODE != 1){
|
||||
$DEFAULT_PWM_MODE = $PWM_MODE;
|
||||
file_put_contents("${PWM_CONTROLLER}_enable", 1);
|
||||
}
|
||||
|
||||
# Calculate size of increments.
|
||||
$TEMP_INCREMENTS = $TEMP_HIGH-$TEMP_LOW;
|
||||
$PWM_INCREMENTS = round(($PWM_HIGH-$PWM_LOW)/$TEMP_INCREMENTS);
|
||||
# Get current fan rpm and pwm
|
||||
$CURRENT_PWM = preg_replace("/\s*/", "", file_get_contents($PWM_CONTROLLER));
|
||||
$CURRENT_RPM = preg_replace("/\s*/", "", file_get_contents($PWM_FAN));
|
||||
# Get current fan PWM percentage
|
||||
$CURRENT_PERCENT_PWM = round(($CURRENT_PWM*100)/$PWM_HIGH);
|
||||
$CURRENT_OUTPUT = "${CURRENT_PWM} (${CURRENT_PERCENT_PWM}% @ ${CURRENT_RPM}rpm)";
|
||||
|
||||
# Calculate a new scenario
|
||||
# Get highest drive temperature
|
||||
$HIGHEST_TEMP = get_highest_temp($hdds);
|
||||
if ($HIGHEST_TEMP <= $TEMP_LOW){
|
||||
$NEW_PWM = $PWM_OFF;
|
||||
$NEW_PERCENT_PWM = 0;
|
||||
} else if ($HIGHEST_TEMP >= $TEMP_HIGH){
|
||||
$NEW_PWM = $PWM_HIGH;
|
||||
$NEW_PERCENT_PWM = 100;
|
||||
} else {
|
||||
$NEW_PWM = (($HIGHEST_TEMP-$TEMP_LOW)*$PWM_INCREMENTS)+$PWM_LOW;
|
||||
$NEW_PERCENT_PWM = round(($NEW_PWM*100)/$PWM_HIGH);
|
||||
}
|
||||
|
||||
# Change the fan speed as needed
|
||||
if ($CURRENT_PWM != $NEW_PWM){
|
||||
file_put_contents($PWM_CONTROLLER, $NEW_PWM);
|
||||
sleep(5);
|
||||
$NEW_RPM = preg_replace("/\s*/", "", file_get_contents($PWM_FAN));
|
||||
$NEW_PERCENT_PWM = round(($NEW_PWM*100)/$PWM_HIGH);
|
||||
$NEW_OUTPUT = "${NEW_PWM} (${NEW_PERCENT_PWM}% @ ${NEW_RPM}rpm)";
|
||||
syslog(LOG_INFO, "highest disk temp is ${HIGHEST_TEMP}ºC, adjusting fan PWM from: $CURRENT_OUTPUT to: $NEW_OUTPUT");
|
||||
}
|
||||
|
||||
# PRINT VARIABLES DEBUG
|
||||
$defined_vars = get_defined_vars();
|
||||
foreach (array("_GET","_POST","_COOKIE","_FILES","argv","argc","_SERVER") as $i) {unset($defined_vars[$i]);}
|
||||
debug("\nDECLARED VARIABLES:\n".print_r($defined_vars, true));
|
||||
unset($defined_vars);
|
||||
|
||||
$time1 = time();
|
||||
$MD5 = shell_exec("md5sum $config_file|awk '{print $1}'");
|
||||
$MD5 = md5_file($config_file);
|
||||
for ($i=0; $i < $INTERVAL*6 ; $i++) {
|
||||
sleep(10);
|
||||
if (md5_file($config_file) != $MD5){syslog(LOG_INFO, "config file updated, reloading."); $i=10000;}
|
||||
}
|
||||
debug("Sleeped ".(time()-$time1)." seconds.");
|
||||
|
||||
###### END OF SECTION ######
|
||||
};};?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
require_once '/usr/local/emhttp/plugins/ipmitool-plugin/include/ipmitool_helpers.php';
|
||||
$cmd = "/usr/bin/ipmitool sel ".$_GET["options"].$ipmitool_options;
|
||||
$cmd = "/usr/bin/ipmitool sel ".$_GET["options"].$options;
|
||||
exec($cmd);
|
||||
?>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
require_once '/usr/local/emhttp/plugins/ipmitool-plugin/include/ipmitool_helpers.php';
|
||||
echo json_encode(ipmi_events($ipmitool_options));
|
||||
echo json_encode(ipmi_events($options));
|
||||
?>
|
@ -1,75 +1,85 @@
|
||||
<?php
|
||||
/* ipmi tool variables*/
|
||||
$plugin = 'ipmitool-plugin';
|
||||
$ipmitool_cfg = parse_ini_file("/boot/config/plugins/$plugin/$plugin.cfg");
|
||||
$ipmitool_service = isset($ipmitool_cfg['SERVICE']) ? $ipmitool_cfg['SERVICE'] : "disable";
|
||||
$ipmitool_remote = isset($ipmitool_cfg['REMOTE']) ? $ipmitool_cfg['REMOTE'] : "disable";
|
||||
$ipmitool_running = trim(shell_exec( "[ -f /proc/`cat /var/run/ipmievd.pid0 2> /dev/null`/exe ] && echo 'yes' || echo 'no' 2> /dev/null" ));
|
||||
|
||||
// get ip address of local ipmi
|
||||
$ipmitool_lanip = trim(shell_exec("/usr/bin/ipmitool lan print | grep 'IP Address ' | sed -n -e 's/^.*: //p'"));
|
||||
$cfg = parse_ini_file("/boot/config/plugins/$plugin/$plugin.cfg");
|
||||
$service = isset($cfg['SERVICE']) ? $cfg['SERVICE'] : "disable";
|
||||
$remote = isset($cfg['REMOTE']) ? $cfg['REMOTE'] : "disable";
|
||||
$ipmievd_running = trim(shell_exec( "[ -f /proc/`cat /var/run/ipmievd.pid0 2> /dev/null`/exe ] && echo 'yes' || echo 'no' 2> /dev/null" ));
|
||||
$running = "<span class='green'>Running</span>";
|
||||
$stopped = "<span class='orange'>Stopped</span>";
|
||||
$ipmievd_status = ($ipmievd_running == "yes") ? $running : $stopped;
|
||||
$ipmifan_status = ($ipmifan_running == "yes") ? $running : $stopped;
|
||||
|
||||
// use save ip address or use local ipmi address
|
||||
$ipmitool_ipaddr = preg_match('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/', $ipmitool_cfg['IPADDR']) ? $ipmitool_cfg['IPADDR'] : $ipmitool_lanip;
|
||||
$ipaddr = preg_match('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/', $cfg['IPADDR']) ?
|
||||
$cfg['IPADDR'] :
|
||||
trim(shell_exec("/usr/bin/ipmitool lan print | grep 'IP Address ' | sed -n -e 's/^.*: //p'"));
|
||||
|
||||
$ipmitool_cpu = isset($ipmitool_cfg['CPU_TEMP']) ? $ipmitool_cfg['CPU_TEMP'] : ""; // cpu temp display name
|
||||
$ipmitool_mb = isset($ipmitool_cfg['MB_TEMP']) ? $ipmitool_cfg['MB_TEMP'] : ""; // mb temp display name
|
||||
$ipmitool_fan = isset($ipmitool_cfg['IPMI_FAN']) ? $ipmitool_cfg['IPMI_FAN'] : ""; // fan speed display name
|
||||
$ipmitool_user = isset($ipmitool_cfg['USER']) ? $ipmitool_cfg['USER'] : ""; // user for remote access
|
||||
$ipmitool_password = isset($ipmitool_cfg['PASSWORD']) ? $ipmitool_cfg['PASSWORD'] : ""; // password for remote access
|
||||
$cpu = isset($cfg['CPU_TEMP']) ? $cfg['CPU_TEMP'] : ""; // cpu temp display name
|
||||
$mb = isset($cfg['MB_TEMP']) ? $cfg['MB_TEMP'] : ""; // mb temp display name
|
||||
$fan = isset($cfg['IPMI_FAN']) ? $cfg['IPMI_FAN'] : ""; // fan speed display name
|
||||
$user = isset($cfg['USER']) ? $cfg['USER'] : ""; // user for remote access
|
||||
$password = isset($cfg['PASSWORD']) ? $cfg['PASSWORD'] : ""; // password for remote access
|
||||
$sensors = [$cpu, $mb, $fan];
|
||||
|
||||
// options for remote access or not
|
||||
$ipmitool_options = ($remote == "enable") ? " -I lanplus -H '$ipmitool_ipaddr' -U '$ipmitool_user' -P '".
|
||||
base64_decode($ipmitool_password)."' " : "";
|
||||
$options = ($remote == "enable") ? "-I lanplus -H '$ipaddr' -U '$user' -P '".
|
||||
base64_decode($password)."'" : "";
|
||||
|
||||
/* get an array of all sensors and their values */
|
||||
function ipmi_sensors($options) {
|
||||
$cmd = "/usr/bin/ipmitool -vc sdr $options 2>/dev/null";
|
||||
exec($cmd, $output);
|
||||
$cmd = "/usr/bin/ipmitool -vc sdr $options -N 1 -R 1 2>/dev/null";
|
||||
exec($cmd, $output, $return);
|
||||
|
||||
if ($return)
|
||||
return [];
|
||||
|
||||
// key names for ipmitool sensor output
|
||||
$sensor_keys = array('Name','Reading','Units','Status','Entity','Location','Type','Nominal',
|
||||
$keys = ['Name','Reading','Units','Status','Entity','Location','Type','Nominal',
|
||||
'NormalMin','NormalMax','UpperNonRec','UpperCritical','UpperNonCritical','LowerNonRec',
|
||||
'LowerCritical','LowerNonCritical','MinRange','MaxRange' );
|
||||
'LowerCritical','LowerNonCritical','MinRange','MaxRange'];
|
||||
|
||||
$sensors_array = [];
|
||||
$sensors = [];
|
||||
|
||||
foreach($output as $sensor){
|
||||
foreach($output as $line){
|
||||
|
||||
// add sensor keys as keys to ipmitool output
|
||||
$sensor_array = array_combine($sensor_keys, array_slice(explode(",", $sensor),0,18,true));
|
||||
$sensor = array_combine($keys, array_slice(explode(",", $line),0,18,true));
|
||||
|
||||
// add sensor to array of sensors
|
||||
$sensors_array[] = $sensor_array;
|
||||
$sensors[] = $sensor;
|
||||
}
|
||||
return $sensors_array;
|
||||
return $sensors;
|
||||
}
|
||||
|
||||
/* get array of events and their values */
|
||||
function ipmi_events($options){
|
||||
$cmd = "/usr/bin/ipmitool -c sel elist $options 2>/dev/null";
|
||||
exec($cmd, $output);
|
||||
function ipmi_events($options=null){
|
||||
$cmd = "/usr/bin/ipmitool -c sel elist $options -N 1 -R 1 2>/dev/null";
|
||||
exec($cmd, $output, $return);
|
||||
|
||||
if ($return)
|
||||
return [];
|
||||
|
||||
// key names for ipmitool event output
|
||||
$event_keys = array('Event','Datestamp','Timestamp','Sensor','Description','Status');
|
||||
$keys = array('Event','Datestamp','Timestamp','Sensor','Description','Status');
|
||||
|
||||
$events_array = [];
|
||||
$events = [];
|
||||
|
||||
foreach($output as $event){
|
||||
foreach($output as $line){
|
||||
|
||||
// add event keys as keys to ipmitool output cut to match
|
||||
$event_array = array_combine($event_keys, array_slice(explode(",", $event),0,6,true));
|
||||
$event = array_combine($keys, array_slice(explode(",", $line),0,6,true));
|
||||
|
||||
$events_array[] = $event_array;
|
||||
$events[] = $event;
|
||||
}
|
||||
return $events_array;
|
||||
return $events;
|
||||
}
|
||||
|
||||
/* get select options for a given sensor type */
|
||||
function ipmi_get_options($selected, $type, $options){
|
||||
$sensors_array = ipmi_sensors($options);
|
||||
$sensors = ipmi_sensors($options=null);
|
||||
$options = "<option value='false'>No</option>\n";
|
||||
foreach($sensors_array as $sensor){
|
||||
foreach($sensors as $sensor){
|
||||
if ($sensor["Type"] == $type && $sensor["Status"] != "ns"){
|
||||
$name = $sensor["Name"];
|
||||
$options .= "<option value='$name'";
|
||||
@ -85,14 +95,25 @@ function ipmi_get_options($selected, $type, $options){
|
||||
}
|
||||
|
||||
/* get reading for a given sensor by name */
|
||||
function ipmi_get_reading($sensor, $options) {
|
||||
function ipmi_get_reading($names, $options=null) {
|
||||
$readings = [];
|
||||
$cmd = "/usr/bin/ipmitool -c sdr $options -N 1 -R 1 2>/dev/null";
|
||||
exec($cmd, $output, $return);
|
||||
|
||||
$sensors_array = ipmi_sensors($options);
|
||||
if ($return)
|
||||
return [];
|
||||
|
||||
foreach($sensors_array as $sensor_array){
|
||||
if ($sensor_array["Name"] == $sensor) {
|
||||
return $sensor_array["Reading"];
|
||||
}
|
||||
for ($i = 0; $i < sizeof($names); $i++) {
|
||||
|
||||
foreach($output as $sensor){
|
||||
$sensors = explode(",", $sensor);
|
||||
|
||||
if ($sensors[0] == $names[$i]) // check name
|
||||
$readings[$names[$i]] = $sensors[1]; // reading
|
||||
}
|
||||
}
|
||||
return $readings; // reading
|
||||
}
|
||||
?>
|
||||
//echo json_encode(ipmi_get_reading($sensors, $options));
|
||||
//echo json_encode(ipmi_sensors($options));
|
||||
?>
|
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
require_once '/usr/local/emhttp/plugins/ipmitool-plugin/include/ipmitool_helpers.php';
|
||||
echo json_encode(ipmi_sensors($ipmitool_options));
|
||||
echo json_encode(ipmi_sensors($options));
|
||||
?>
|
@ -1,27 +1,23 @@
|
||||
<?
|
||||
require_once '/usr/local/emhttp/plugins/ipmitool-plugin/include/ipmitool_helpers.php';
|
||||
|
||||
function my_temp($reading, $unit, $dot) {
|
||||
function ipmi_temp($reading, $unit, $dot) {
|
||||
return ($reading>0 ? ($unit=='F' ? round(9/5*$reading+32) : str_replace('.',$dot,$reading)) : '##')." $unit";
|
||||
}
|
||||
|
||||
$sensors_array = [];
|
||||
if ($cpu || $mb || $fan){
|
||||
$readings = ipmi_get_reading($sensors, $options);
|
||||
$temps = [];
|
||||
|
||||
if ($ipmitool_cpu){
|
||||
$ipmitool_cpu_temp = ipmi_get_reading($ipmitool_cpu, $ipmitool_options);
|
||||
if ($ipmitool_cpu_temp)
|
||||
$sensors_array[] = "<img src='/plugins/$plugin/icons/cpu.png' title='$ipmitool_cpu' class='icon'>".my_temp($ipmitool_cpu_temp, $_GET['unit'], $_GET['dot']);
|
||||
if ($readings[$cpu])
|
||||
$temps[] = "<img src='/plugins/$plugin/icons/cpu.png' title='$cpu' class='icon'>".ipmi_temp($readings[$cpu], $_GET['unit'], $_GET['dot']);
|
||||
|
||||
if ($readings[$mb])
|
||||
$temps[] = "<img src='/plugins/$plugin/icons/mb.png' title='$mb' class='icon'>".ipmi_temp($readings[$mb], $_GET['unit'], $_GET['dot']);
|
||||
|
||||
if ($readings[$fan])
|
||||
$temps[] = "<img src='/plugins/$plugin/icons/fan.png' title='$fan' class='icon'>".$readings[$fan]." rpm";
|
||||
}
|
||||
if ($ipmitool_mb){
|
||||
$ipmitool_mb_temp = ipmi_get_reading($ipmitool_mb, $ipmitool_options);
|
||||
if ($ipmitool_mb_temp)
|
||||
$sensors_array[] = "<img src='/plugins/$plugin/icons/mb.png' title='$ipmitool_mb' class='icon'>".my_temp($ipmitool_mb_temp, $_GET['unit'], $_GET['dot']);
|
||||
}
|
||||
if ($ipmitool_fan){
|
||||
$ipmitool_fan_rpm = ipmi_get_reading($ipmitool_fan, $ipmitool_options);
|
||||
if ($ipmitool_fan_rpm)
|
||||
$sensors_array[] = "<img src='/plugins/$plugin/icons/fan.png' title='$ipmitool_fan' class='icon'>".$ipmitool_fan_rpm." rpm";
|
||||
}
|
||||
if ($sensors_array)
|
||||
echo "<span id='temps' style='margin-right:16px'>".implode(' ', $sensors_array)."</span>";
|
||||
if ($temps)
|
||||
echo "<span id='temps' style='margin-right:16px'>".implode(' ', $temps)."</span>";
|
||||
?>
|
||||
|
Reference in New Issue
Block a user