From 5c1326a544408c0fd0fa1709ab6f2316e68ab0a1 Mon Sep 17 00:00:00 2001 From: Derek Macias Date: Mon, 15 Feb 2016 09:31:23 -0700 Subject: [PATCH] move to /usr/sbin --- .../plugins/ipmitool-plugin/scripts/ipmifan | 292 ------------------ .../plugins/ipmitool-plugin/scripts/ipmitail | 21 -- 2 files changed, 313 deletions(-) delete mode 100644 source/ipmitool-plugin/usr/local/emhttp/plugins/ipmitool-plugin/scripts/ipmifan delete mode 100755 source/ipmitool-plugin/usr/local/emhttp/plugins/ipmitool-plugin/scripts/ipmitail diff --git a/source/ipmitool-plugin/usr/local/emhttp/plugins/ipmitool-plugin/scripts/ipmifan b/source/ipmitool-plugin/usr/local/emhttp/plugins/ipmitool-plugin/scripts/ipmifan deleted file mode 100644 index 069aac43..00000000 --- a/source/ipmitool-plugin/usr/local/emhttp/plugins/ipmitool-plugin/scripts/ipmifan +++ /dev/null @@ -1,292 +0,0 @@ -#!/usr/bin/php - 'AA', - 'CPU_FAN2' => 'BB', - 'REAR_FAN1' => 'CC', - 'REAR_FAN2' => 'DD', - 'FRNT_FAN1' => 'EE', - 'FRNT_FAN2' => 'FF' -]; - -function debug($m){ - global $prog, $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 '--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; - } - } -}*/ - -# Deal with cron -if ($cron) && is_numeric($cron) && !$quit){ - exec("crontab -l 2>/dev/null", $crontab); - $crontab = array_unique($crontab); - if (!$quit){ - $entry = sprintf("*/%s * * * * ${service}${background_args} 1> /dev/null 2>&1", $cron); - if (! preg_grep("#${service}#", $crontab)){ - $crontab[] = $entry; - debug("\nCRONTAB\n".implode("\n", $crontab)."\n"); - file_put_contents("/tmp/$prog.cron", implode(PHP_EOL, $crontab)); - shell_exec("crontab /tmp/$prog.cron"); - unlink("/tmp/$prog.cron"); - } - } - unset($crontab); -} else if ($quit){ - exec("crontab -l 2>/dev/null", $crontab); - $crontab = array_unique($crontab); - if (preg_grep("#${service}#", $crontab)){ - $crontab = preg_grep("#${service}#", $crontab, PREG_GREP_INVERT); - debug("\nCRONTAB\n".implode("\n", $crontab)."\n"); - file_put_contents("/tmp/$prog.cron", implode(PHP_EOL, $crontab)); - shell_exec("crontab /tmp/$prog.cron"); - unlink("/tmp/$prog.cron"); - }; - unset($crontab); -} - -if (is_file($lockfile)){ - $lock_pid = file($lockfile, FILE_IGNORE_NEW_LINES)[0]; - $pid = preg_replace("/\s+/", "", shell_exec("ps -p ${lock_pid}| grep ${lock_pid}")); - if (!$pid){ - if (!$quit){ - file_put_contents($lockfile, getmypid()); - } else { - echo "$lock_pid is not currently running"; - unlink($lockfile); - exit(0); - } - } else { - if ($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 "$prog is already running [$lock_pid]".PHP_EOL; - exit(0); - } - } -} else { - if($quit){ - echo "$prog not currently running".PHP_EOL; - exit(0); - } else { - file_put_contents($lockfile, getmypid()); - } -} - -if(!$background){ - exec("php $service --background $background_args 1>/dev/null ".($DEBUG ? "":"2>&1 ")."&"); - exit(0); -} else { - syslog(LOG_INFO, "process started. To terminate it, type: $prog -q"); -} - -############################## -##### PROGRAM SECTION ###### -############################## -$plugin = "ipmitool-plugin"; -$cfg_file = "/boot/config/plugins/$plugin/$plugin.cfg"; - -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($cfg_file)){ - $params = parse_ini_file($cfg_file); - 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 = 64; -$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 $cfg_file|awk '{print $1}'"); -$MD5 = md5_file($cfg_file); -for ($i=0; $i < $INTERVAL*6 ; $i++) { - sleep(10); - if (md5_file($cfg_file) != $MD5){syslog(LOG_INFO, "config file updated, reloading."); $i=10000;} -} -debug("Sleep ".(time()-$time1)." seconds."); - -###### END OF SECTION ###### -}; -}; -?> \ No newline at end of file diff --git a/source/ipmitool-plugin/usr/local/emhttp/plugins/ipmitool-plugin/scripts/ipmitail b/source/ipmitool-plugin/usr/local/emhttp/plugins/ipmitool-plugin/scripts/ipmitail deleted file mode 100755 index 8cbda6f1..00000000 --- a/source/ipmitool-plugin/usr/local/emhttp/plugins/ipmitool-plugin/scripts/ipmitail +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -DAEMON="ipmievd: " -LASTMSG="Waiting for events" -exec /usr/bin/tail -n 0 -F /var/log/syslog | \ - -while read LINE; -do - -# do not notify on ipmievd start -[[ "$LINE" == *"Waiting for events"* ]] && continue - -# do not notify on remote communication failure -[[ "$LINE" == *"Get SEL Info command failed"* ]] && continue - -# only notify when ipmievd: is in the system log -[[ "$LINE" != *$DAEMON* ]] && continue -MESSAGE=$(echo "$LINE" | sed -e 's/.*$DAEMON//') -sleep 1 | -exec /usr/local/emhttp/webGui/scripts/notify -s "Notice [$HOSTNAME]" -d "$MESSAGE" -i "warning" && continue 2 -done \ No newline at end of file