From a9c5c19aee8db8f4aa301eb9c26a498f2fd3ec0c Mon Sep 17 00:00:00 2001 From: cfoe <cfoe@ispconfig3> Date: Wed, 11 Jul 2012 04:05:05 -0400 Subject: [PATCH] rc1 of default-v2 --- server/lib/classes/monitor_tools.inc.php | 101 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 94 insertions(+), 7 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 0f0a172..d3cdc65 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -44,8 +44,81 @@ //** Debian or Ubuntu if (file_exists('/etc/debian_version')) { + if (strstr(trim(file_get_contents('/etc/issue')), 'Ubuntu')) { + if (strstr(trim(file_get_contents('/etc/issue')), 'LTS')) { + $lts=" LTS"; + } else { + $lts=""; + } - if (trim(file_get_contents('/etc/debian_version')) == '4.0') { + $issue=file_get_contents('/etc/issue'); + $distname = 'Ubuntu'; + $distid = 'debian40'; + $distbaseid = 'debian'; + $ver = explode(' ',$issue); + $ver = array_filter($ver); + $ver = next($ver); + $mainver = explode('.',$ver); + $mainver = array_filter($mainver); + $mainver = current($mainver).'.'.next($mainver); + switch ($mainver){ + case "12.10": + $relname = "(Quantal Quetzal)"; + break; + case "12.04": + $relname = "(Precise Pangolin)"; + break; + case "11.10": + $relname = "(Oneiric Ocelot)"; + break; + case "11.14": + $relname = "(Natty Narwhal)"; + break; + case "10.10": + $relname = "(Maverick Meerkat)"; + break; + case "10.04": + $relname = "(Lucid Lynx)"; + break; + case "9.10": + $relname = "(Karmic Koala)"; + break; + case "9.04": + $relname = "(Jaunty Jackpole)"; + break; + case "8.10": + $relname = "(Intrepid Ibex)"; + break; + case "8.04": + $relname = "(Hardy Heron)"; + break; + case "7.10": + $relname = "(Gutsy Gibbon)"; + break; + case "7.04": + $relname = "(Feisty Fawn)"; + break; + case "6.10": + $relname = "(Edgy Eft)"; + break; + case "6.06": + $relname = "(Dapper Drake)"; + break; + case "5.10": + $relname = "(Breezy Badger)"; + break; + case "5.04": + $relname = "(Hoary Hedgehog)"; + break; + case "4.10": + $relname = "(Warty Warthog)"; + break; + default: + $relname = "UNKNOWN"; + } + $distver = $ver.$lts." ".$relname; + swriteln("Operating System: ".$distver."\n"); + } elseif(trim(file_get_contents('/etc/debian_version')) == '4.0') { $distname = 'Debian'; $distver = '4.0'; $distid = 'debian40'; @@ -151,7 +224,7 @@ //** Email Quota public function monitorEmailQuota() { - global $conf; + global $conf, $app; //* Initialize data array $data = array(); @@ -175,7 +248,13 @@ $quotafile = file($filename); $data[$email]['used'] = trim($quotafile['1']); unset($quotafile); - } + } else { + exec('du -s '.escapeshellcmd('/var/vmail/'.$email_parts[1].'/'.$email_parts[0]),$out); + $parts = explode(' ',$out[0]); + $data[$email]['used'] = intval($parts[0])*1024; + unset($out); + unset($parts); + } } } @@ -235,10 +314,12 @@ $data['user'][$username]['used'] += $s[2]; $data['user'][$username]['soft'] += $s[3]; $data['user'][$username]['hard'] += $s[4]; + $data['user'][$username]['files'] += $s[5]; } else { $data['user'][$username]['used'] = $s[2]; $data['user'][$username]['soft'] = $s[3]; $data['user'][$username]['hard'] = $s[4]; + $data['user'][$username]['files'] = $s[5]; } } } @@ -873,7 +954,7 @@ /* * Fetch the output */ - $data['output'] = shell_exec('zypper --non-interactive up'); + $data['output'] = shell_exec('zypper lu'); } else { /* * It is not Debian/Ubuntu, so there is no data and no state @@ -1014,7 +1095,7 @@ /* * Fetch the output */ - $data['output'] = shell_exec('mpt-status --autoload -n'); + $data['output'] = shell_exec('mpt-status --autoload'); /* * Then calc the state. @@ -1026,7 +1107,7 @@ * The output contains information for every RAID and every HDD. * We only need the state of the RAID */ - if (strpos($item, 'raidlevel:') !== false) { + if (strpos($item, 'state ') !== false) { /* * We found a raid, process the state of it */ @@ -1713,7 +1794,13 @@ * So we can do a deepter test and try to get data over this connection. * (if apache hangs, we get a connection but a timeout by trying to GET the data!) */ - fwrite($fp, "GET / HTTP/1.0\r\n\r\n"); + // fwrite($fp, "GET / HTTP/1.0\r\n\r\n"); + $out = "GET / HTTP/1.1\r\n"; + $out .= "Host: localhost\r\n"; + $out .= "User-Agent: Mozilla/5.0 (ISPConfig monitor)\r\n"; + $out .= "Accept: application/xml,application/xhtml+xml,text/html\r\n"; + $out .= "Connection: Close\r\n\r\n"; + fwrite($fp, $out); stream_set_timeout($fp, 5); // Timeout after 5 seconds $res = fread($fp, 10); // try to get 10 bytes (enough to test!) $info = stream_get_meta_data($fp); -- Gitblit v1.9.1