From 66d94a0790fb96e85debe5809d5ad48f0f27f798 Mon Sep 17 00:00:00 2001
From: oilyflutesalad <oilyflutesalad@ispconfig3>
Date: Sat, 16 Jan 2010 11:22:13 -0500
Subject: [PATCH] Fixed: Server uptime minutes will always be two digits as a clock would show (eg 10:03 hours instead of 10:3 hours)

---
 server/mods-available/monitor_core_module.inc.php |   67 ++++++++++++++++++++++++++++++---
 1 files changed, 60 insertions(+), 7 deletions(-)

diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index 53cdc28..cc95772 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -219,10 +219,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 +520,34 @@
              */
             $data['output'] = shell_exec('apt-get -s -q dist-upgrade');
         }
+        elseif (file_exists("/etc/gentoo-release")) {
+        	
+        	/*
+        	 * first update the portage tree
+        	 */
+        	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 +726,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;
@@ -1181,43 +1214,63 @@
 		
 		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 == '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');
-                break;
+                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