From b259a47d577d27ce857027fe2dc1b0b0ad626ed8 Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Fri, 10 Aug 2012 05:19:45 -0400 Subject: [PATCH] Fixed: FS#2343 - Ubuntu system 12.04 uses /var/log/syslog, not /var/log/messages? --- server/lib/classes/monitor_tools.inc.php | 111 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 99 insertions(+), 12 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 0f0a172..bd6f6cb 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(); @@ -165,17 +238,23 @@ //* The state of the email_quota. $state = 'ok'; - $mailboxes = $app->db->queryAllRecords("SELECT email FROM mail_user WHERE server_id = $server_id"); + $mailboxes = $app->db->queryAllRecords("SELECT email,maildir FROM mail_user WHERE server_id = $server_id"); if(is_array($mailboxes)) { foreach($mailboxes as $mb) { $email = $mb['email']; $email_parts = explode('@',$mb['email']); - $filename = '/var/vmail/'.$email_parts[1].'/'.$email_parts[0].'/.quotausage'; - if(file_exists($filename)) { + $filename = $mb['maildir'].'/.quotausage'; + if(file_exists($filename) && !is_link($filename)) { $quotafile = file($filename); $data[$email]['used'] = trim($quotafile['1']); unset($quotafile); - } + } else { + exec('du -s '.escapeshellcmd($mb['maildir']),$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 @@ -915,7 +996,7 @@ */ $tmp = explode("\n", $data['output']); $more = $tmp[sizeof($tmp) - 1]; - $this->_getIntArray($more); + $res = $this->_getIntArray($more); $data['bytes'] = $res[0]; $data['requests'] = $res[1]; @@ -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 */ @@ -1602,7 +1683,7 @@ break; case 'log_messages': if ($dist == 'debian') { - $logfile = '/var/log/messages'; + $logfile = '/var/log/syslog'; } elseif ($dist == 'redhat') { $logfile = '/var/log/messages'; } elseif ($dist == 'suse') { @@ -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