function read_dmesg() { if (!$this->dmesg) { $parts = explode("rebooting", rfts('/var/run/dmesg.boot')); $this->dmesg = explode("\n", $parts[count($parts) - 1]); } return $this->dmesg; }
public function __construct() { parent::__construct(__CLASS__); if (rfts($this->mdstat_location, $buffer)) { $this->filecontent = explode("\n", $buffer); } else { $this->filecontent = array(); } }
function read_dmesg () { if (! $this->dmesg) { if( PHP_OS == "Darwin" ) { $this->dmesg = array(); } else { $parts = explode("rebooting", rfts( '/var/run/dmesg.boot' ) ); $this->dmesg = explode("\n", $parts[count($parts) - 1]); } } return $this->dmesg; }
function mbinfo() { $buffer = rfts( APP_ROOT . "/data/MBM5.csv" ); if( strpos( $buffer, ";") === false ) { $delim = ","; } else { $delim = ";"; } $buffer = preg_split("/\n/", $buffer ); $this->buf_label = preg_split("/".$delim."/", $buffer[0] ); $this->buf_value = preg_split("/".$delim."/", $buffer[1] ); }
function __construct() { rfts(APP_ROOT . "/data/MBM5.csv", $buffer); if (strpos($buffer, ";") === false) { $delim = ","; } else { $delim = ";"; } $buffer = split("\n", $buffer); $this->buf_label = split($delim, substr($buffer[0], 0, -2)); $this->buf_value = split($delim, substr($buffer[1], 0, -2)); }
function temperature($hddtemp_avail) { $ar_buf = array(); $results = array(); switch ($hddtemp_avail) { case "tcp": // Timo van Roermund: connect to the hddtemp daemon, use a 5 second timeout. $fp = fsockopen('localhost', 7634, $errno, $errstr, 5); // if connected, read the output of the hddtemp daemon if ($fp) { // read output of the daemon $lines = ''; while (!feof($fp)) { $lines .= fread($fp, 1024); } // close the connection fclose($fp); } else { die("HDDTemp error: " . $errno . ", " . $errstr); } $lines = str_replace("||", "|\n|", $lines); $ar_buf = explode("\n", $lines); break; case "suid": $strDrives = ""; $strContent = rfts("/proc/diskstats", 0, 4096, false); if ($strContent != "ERROR") { $arrContent = explode("\n", $strContent); foreach ($arrContent as $strLine) { preg_match("/^\\s(.*)\\s([a-z]*)\\s(.*)/", $strLine, $arrSplit); if (!empty($arrSplit[2])) { $strDrive = '/dev/' . $arrSplit[2]; if (file_exists($strDrive)) { $strDrives = $strDrives . $strDrive . ' '; } } } } else { $strContent = rfts("/proc/partitions", 0, 4096, false); if ($strContent != "ERROR") { $arrContent = explode("\n", $strContent); foreach ($arrContent as $strLine) { if (!preg_match("/^\\s(.*)\\s([\\/a-z0-9]*(\\/disc))\\s(.*)/", $strLine, $arrSplit)) { preg_match("/^\\s(.*)\\s([a-z]*)\\s(.*)/", $strLine, $arrSplit); } if (!empty($arrSplit[2])) { $strDrive = '/dev/' . $arrSplit[2]; if (file_exists($strDrive)) { $strDrives = $strDrives . $strDrive . ' '; } } } } } if (trim($strDrives) == "") { return array(); } $hddtemp_value = execute_program("hddtemp", $strDrives); $hddtemp_value = explode("\n", $hddtemp_value); foreach ($hddtemp_value as $line) { $temp = preg_split("/:\\s/", $line, 3); if (count($temp) == 3 && preg_match("/^[0-9]/", $temp[2])) { list($temp[2], $temp[3]) = preg_split("/\\s/", $temp[2]); array_push($ar_buf, "|" . implode("|", $temp) . "|"); } } break; default: die("Bad hddtemp configuration in config.php"); } // Timo van Roermund: parse the info from the hddtemp daemon. $i = 0; foreach ($ar_buf as $line) { $data = array(); if (ereg("\\|(.*)\\|(.*)\\|(.*)\\|(.*)\\|", $line, $data)) { if (trim($data[3]) != "ERR") { // get the info we need $results[$i]['label'] = $data[1]; $results[$i]['value'] = $data[3]; $results[$i]['model'] = $data[2]; $i++; } } } return $results; }
function memory() { $results['ram'] = array('total' => 0, 'free' => 0, 'used' => 0, 'percent' => 0); $results['swap'] = array('total' => 0, 'free' => 0, 'used' => 0, 'percent' => 0); $results['devswap'] = array(); $bufr = rfts('/proc/meminfo'); if ($bufr != "ERROR") { $bufe = explode("\n", $bufr); foreach ($bufe as $buf) { if (preg_match('/^MemTotal:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) { $results['ram']['total'] = $ar_buf[1]; } else { if (preg_match('/^MemFree:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) { $results['ram']['free'] = $ar_buf[1]; } else { if (preg_match('/^Cached:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) { $results['ram']['cached'] = $ar_buf[1]; } else { if (preg_match('/^Buffers:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) { $results['ram']['buffers'] = $ar_buf[1]; } } } } } $results['ram']['used'] = $results['ram']['total'] - $results['ram']['free']; $results['ram']['percent'] = round($results['ram']['used'] * 100 / $results['ram']['total']); // values for splitting memory usage if (isset($results['ram']['cached']) && isset($results['ram']['buffers'])) { $results['ram']['app'] = $results['ram']['used'] - $results['ram']['cached'] - $results['ram']['buffers']; $results['ram']['app_percent'] = round($results['ram']['app'] * 100 / $results['ram']['total']); $results['ram']['buffers_percent'] = round($results['ram']['buffers'] * 100 / $results['ram']['total']); $results['ram']['cached_percent'] = round($results['ram']['cached'] * 100 / $results['ram']['total']); } $bufr = rfts('/proc/swaps'); if ($bufr != "ERROR") { $swaps = explode("\n", $bufr); for ($i = 1; $i < sizeof($swaps); $i++) { if (trim($swaps[$i]) != "") { $ar_buf = preg_split('/\\s+/', $swaps[$i], 6); $results['devswap'][$i - 1] = array(); $results['devswap'][$i - 1]['dev'] = $ar_buf[0]; $results['devswap'][$i - 1]['total'] = $ar_buf[2]; $results['devswap'][$i - 1]['used'] = $ar_buf[3]; $results['devswap'][$i - 1]['free'] = $results['devswap'][$i - 1]['total'] - $results['devswap'][$i - 1]['used']; $results['devswap'][$i - 1]['percent'] = round($ar_buf[3] * 100 / $ar_buf[2]); $results['swap']['total'] += $ar_buf[2]; $results['swap']['used'] += $ar_buf[3]; $results['swap']['free'] = $results['swap']['total'] - $results['swap']['used']; $results['swap']['percent'] = round($results['swap']['used'] * 100 / $results['swap']['total']); } } } } return $results; }
function memory () { $results['ram'] = array(); $results['swap'] = array(); $results['devswap'] = array(); $bufr = rfts( '/proc/meminfo' ); if( $bufr != "ERROR" ) { $bufe = explode( "\n", $bufr ); foreach( $bufe as $buf ) { if (preg_match('/Mem:\s+(.*)$/', $buf, $ar_buf)) { $ar_buf = preg_split('/\s+/', $ar_buf[1], 6); $results['ram']['total'] = $ar_buf[0] / 1024; $results['ram']['used'] = $ar_buf[1] / 1024; $results['ram']['free'] = $ar_buf[2] / 1024; $results['ram']['shared'] = $ar_buf[3] / 1024; $results['ram']['buffers'] = $ar_buf[4] / 1024; $results['ram']['cached'] = $ar_buf[5] / 1024; // I don't like this since buffers and cache really aren't // 'used' per say, but I get too many emails about it. $results['ram']['percent'] = round(($results['ram']['used'] * 100) / $results['ram']['total']); } if (preg_match('/Swap:\s+(.*)$/', $buf, $ar_buf)) { $ar_buf = preg_split('/\s+/', $ar_buf[1], 3); $results['swap']['total'] = $ar_buf[0] / 1024; $results['swap']['used'] = $ar_buf[1] / 1024; $results['swap']['free'] = $ar_buf[2] / 1024; $results['swap']['percent'] = round(($ar_buf[1] * 100) / $ar_buf[0]); // Get info on individual swap files $swaps = rfts( '/proc/swaps' ); if( $swaps != "ERROR" ) { $swapdevs = preg_split("/\n/", $swaps); for ($i = 1, $max = (sizeof($swapdevs) - 1); $i < $max; $i++) { $ar_buf = preg_split('/\s+/', $swapdevs[$i], 6); $results['devswap'][$i - 1] = array(); $results['devswap'][$i - 1]['dev'] = $ar_buf[0]; $results['devswap'][$i - 1]['total'] = $ar_buf[2]; $results['devswap'][$i - 1]['used'] = $ar_buf[3]; $results['devswap'][$i - 1]['free'] = ($results['devswap'][$i - 1]['total'] - $results['devswap'][$i - 1]['used']); $results['devswap'][$i - 1]['percent'] = round(($ar_buf[3] * 100) / $ar_buf[2]); } break; } } } } return $results; }
function mbinfo() { $buffer = split("\n", rfts(APP_ROOT . "/data/MBM5.csv")); $this->buf_label = split(";", $buffer[0]); $this->buf_value = split(";", $buffer[1]); }
function stat_memory_usage() { $results['ram'] = array('total' => 0, 'free' => 0, 'used' => 0, 'percent' => 0); $results['swap'] = array('total' => 0, 'free' => 0, 'used' => 0, 'percent' => 0); $results['devswap'] = array(); $bufr = rfts('/proc/meminfo'); if ($bufr != "ERROR") { $bufe = explode("\n", $bufr); foreach ($bufe as $buf) { if (preg_match('/^MemTotal:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) { $results['ram']['total'] = $ar_buf[1]; } else { if (preg_match('/^MemFree:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) { $results['ram']['free'] = $ar_buf[1]; } else { if (preg_match('/^Cached:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) { $results['ram']['cached'] = $ar_buf[1]; } else { if (preg_match('/^Buffers:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) { $results['ram']['buffers'] = $ar_buf[1]; } } } } } $results['ram']['used'] = $results['ram']['total'] - $results['ram']['free']; $results['ram']['percent'] = round($results['ram']['used'] * 100 / $results['ram']['total']); // values for splitting memory usage这里可以获取更多的信息,但目前不需要 //if (isset($results['ram']['cached']) && isset($results['ram']['buffers'])) { // $results['ram']['app'] = $results['ram']['used'] - $results['ram']['cached'] - $results['ram']['buffers']; // $results['ram']['app_percent'] = round(($results['ram']['app'] * 100) / $results['ram']['total']); // $results['ram']['buffers_percent'] = round(($results['ram']['buffers'] * 100) / $results['ram']['total']); // $results['ram']['cached_percent'] = round(($results['ram']['cached'] * 100) / $results['ram']['total']); //} } return rpcreturn(200, null, null, array('percent' => $results['ram']['percent'], 'total' => $results['ram']['total'], 'free' => $results['ram']['free'], 'cached' => $results['ram']['cached'], 'buffers' => $results['ram']['buffers'], 'used' => $results['ram']['used'])); }