From 286d1bf1b746b49e43fd674bbc47afd25adfbedb Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Sun, 31 Jan 2010 12:33:18 -0500 Subject: [PATCH] Fixed: FS#1053 - Syntax Error in form_list.php --- server/mods-available/monitor_core_module.inc.php | 89 ++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 80 insertions(+), 9 deletions(-) diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php index 1b2a9f2..0e3e6df 100644 --- a/server/mods-available/monitor_core_module.inc.php +++ b/server/mods-available/monitor_core_module.inc.php @@ -148,12 +148,20 @@ $tmp = explode(",", $data['uptime'], 4); $tmpUser = explode(" ", trim($tmp[2])); $data['user_online'] = intval($tmpUser[0]); - + + /* Old Load Average Code $loadTmp = explode(":" , trim($tmp[3])); $load = explode(",", $loadTmp[1]); $data['load_1'] = floatval(trim($load[0])); $data['load_5'] = floatval(trim($load[1])); - $data['load_15'] = floatval(trim($load[2])); + $data['load_15'] = floatval(trim($load[2])); */ + + //* New Load Average code to fix "always zero" bug in non-english distros. NEEDS TESTING + $loadTmp = shell_exec("cat /proc/loadavg | cut -f1-3 -d' '"); + $load = explode(" ", $loadTmp); + $data['load_1'] = floatval(str_replace(',', '.', $load[0])); + $data['load_5'] = floatval(str_replace(',', '.', $load[1])); + $data['load_15'] = floatval(str_replace(',', '.', $load[2])); /** The state of the server-load. */ $state = 'ok'; @@ -219,10 +227,14 @@ * calculate the state */ $usePercent = floatval($data[$i]['percent']); - if ($usePercent > 75) $state = $this->_setState($state, 'info'); - if ($usePercent > 80) $state = $this->_setState($state, 'warning'); - if ($usePercent > 90) $state = $this->_setState($state, 'critical'); - if ($usePercent > 95) $state = $this->_setState($state, 'error'); + + //* We dont want to check the cdrom drive as a cd / dvd is always 100% full + if($data[$i]['type'] != 'iso9660' && $data[$i]['type'] != 'cramfs' && $data[$i]['type'] != 'udf') { + if ($usePercent > 75) $state = $this->_setState($state, 'info'); + if ($usePercent > 80) $state = $this->_setState($state, 'warning'); + if ($usePercent > 90) $state = $this->_setState($state, 'critical'); + if ($usePercent > 95) $state = $this->_setState($state, 'error'); + } } } @@ -516,6 +528,54 @@ */ $data['output'] = shell_exec('apt-get -s -q dist-upgrade'); } + elseif (file_exists("/etc/gentoo-release")) { + + /* + * first update the portage tree + */ + + // In keeping with gentoo's rsync policy, don't update to frequently (every four hours - taken from http://www.gentoo.org/doc/en/source_mirrors.xml) + $do_update = true; + if (file_exists('/usr/portage/metadata/timestamp.chk')) + { + $datetime = file_get_contents('/usr/portage/metadata/timestamp.chk'); + $datetime = trim($datetime); + + $dstamp = strtotime($datetime); + if ($dstamp) + { + $checkat = $dstamp + 14400; // + 4hours + if (mktime() < $checkat) { + $do_update = false; + } + } + } + + if ($do_update) { + shell_exec('emerge --sync --quiet'); + } + + /* + * Then test the upgrade. + * if there is any output, then there is a needed update + */ + $emergeData = shell_exec('emerge -puDNt --color n --nospinner --quiet world'); + if ($emergeData == '') + { + /* There is nothing to update! */ + $state = 'ok'; + } + else + { + /* There is something to update! */ + $state = 'warning'; + } + + /* + * Fetch the output + */ + $data['output'] = shell_exec('emerge -pvuDNt --color n --nospinner world'); + } else { /* * It is not debian/Ubuntu, so there is no data and no state @@ -694,10 +754,11 @@ function monitorRkHunter(){ /* - * This monitoring is expensive, so do it only once a hour + * This monitoring is expensive, so do it only once a day */ $min = date('i'); - if ($min != 0) return; + $hour = date('H'); + if (!($min == 0 && $hour == 23)) return; global $app; global $conf; @@ -1182,52 +1243,62 @@ if(@is_file('/etc/debian_version')) $dist = 'debian'; if(@is_file('/etc/redhat-release')) $dist = 'redhat'; if(@is_file('/etc/SuSE-release')) $dist = 'suse'; + if(@is_file('/etc/gentoo-release')) $dist = 'gentoo'; switch($log) { case 'log_mail': if($dist == 'debian') $logfile = '/var/log/mail.log'; if($dist == 'redhat') $logfile = '/var/log/maillog'; if($dist == 'suse') $logfile = '/var/log/mail.info'; + if($dist == 'gentoo') $logfile = '/var/log/maillog'; break; case 'log_mail_warn': if($dist == 'debian') $logfile = '/var/log/mail.warn'; if($dist == 'redhat') $logfile = '/var/log/maillog'; if($dist == 'suse') $logfile = '/var/log/mail.warn'; + if($dist == 'gentoo') $logfile = '/var/log/maillog'; break; case 'log_mail_err': if($dist == 'debian') $logfile = '/var/log/mail.err'; if($dist == 'redhat') $logfile = '/var/log/maillog'; if($dist == 'suse') $logfile = '/var/log/mail.err'; + if($dist == 'gentoo') $logfile = '/var/log/maillog'; break; case 'log_messages': if($dist == 'debian') $logfile = '/var/log/messages'; if($dist == 'redhat') $logfile = '/var/log/messages'; - if($dist == 'suse') $logfile = '/var/log/messages' + if($dist == 'suse') $logfile = '/var/log/messages'; + if($dist == 'gentoo') $logfile = '/var/log/messages'; break; case 'log_ispc_cron': if($dist == 'debian') $logfile = '/var/log/ispconfig/cron.log'; if($dist == 'redhat') $logfile = '/var/log/ispconfig/cron.log'; if($dist == 'suse') $logfile = '/var/log/ispconfig/cron.log'; + if($dist == 'gentoo') $logfile = '/var/log/cron'; break; case 'log_freshclam': if($dist == 'debian') $logfile = '/var/log/clamav/freshclam.log'; if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/freshclam.log') ? '/var/log/clamav/freshclam.log' : '/var/log/freshclam.log'); if($dist == 'suse') $logfile = ''; + if($dist == 'gentoo') $logfile = '/var/log/clamav/freshclam.log'; break; case 'log_clamav': if($dist == 'debian') $logfile = '/var/log/clamav/clamav.log'; if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/clamd.log') ? '/var/log/clamav/clamd.log' : '/var/log/maillog'); if($dist == 'suse') $logfile = ''; + if($dist == 'gentoo') $logfile = '/var/log/clamav/clamd.log'; break; case 'log_fail2ban': if($dist == 'debian') $logfile = '/var/log/fail2ban.log'; if($dist == 'redhat') $logfile = '/var/log/fail2ban.log'; if($dist == 'suse') $logfile = '/var/log/fail2ban.log'; + if($dist == 'gentoo') $logfile = '/var/log/fail2ban.log'; break; case 'log_ispconfig': if($dist == 'debian') $logfile = '/var/log/ispconfig/ispconfig.log'; if($dist == 'redhat') $logfile = '/var/log/ispconfig/ispconfig.log'; if($dist == 'suse') $logfile = '/var/log/ispconfig/ispconfig.log'; + if($dist == 'gentoo') $logfile = '/var/log/ispconfig/ispconfig.log'; break; default: $logfile = ''; -- Gitblit v1.9.1