From 641cb3bc12271772fdc169ccf3c91430dac27bd0 Mon Sep 17 00:00:00 2001
From: redray <redray@ispconfig3>
Date: Sun, 21 Dec 2008 07:35:58 -0500
Subject: [PATCH] cron errors got to logfile now and are available in monitor-section

---
 install/lib/installer_base.lib.php                |   14 +++++-
 interface/web/monitor/lib/lang/en.lng             |    1 
 server/mods-available/monitor_core_module.inc.php |   41 ++++++++++++++++++++
 interface/web/monitor/lib/module.conf.php         |    4 ++
 server/cron_daily.php                             |    6 +-
 interface/web/monitor/show_log.php                |    4 ++
 6 files changed, 64 insertions(+), 6 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index a62e1d9..5e6b42f 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1042,9 +1042,12 @@
 			if(stristr($val,'/usr/local/ispconfig')) unset($existing_root_cron_jobs[$key]);
 		}
 		
+        // Crontab must end with an empty line or comment!
 		$root_cron_jobs = array(
-			'* * * * * /usr/local/ispconfig/server/server.sh > /dev/null',
-			'30 00 * * * /usr/local/ispconfig/server/cron_daily.sh > /dev/null'
+		    '# --- ISPConfig ----',
+			'* * * * * /usr/local/ispconfig/server/server.sh > /dev/null 2>> /var/log/var/log/ispconfig/cron.log',
+			'30 00 * * * /usr/local/ispconfig/server/cron_daily.sh > /dev/null 2>> /var/log/var/log/ispconfig/cron.log',
+		    '# ------------------'
 		);
 		foreach($root_cron_jobs as $cron_job) {
 			if(!in_array($cron_job."\n", $existing_root_cron_jobs)) {
@@ -1061,7 +1064,12 @@
 			exec('crontab -u getmail -l > crontab.txt');
 			$existing_cron_jobs = file('crontab.txt');
 		
-			$cron_jobs = array('*/5 * * * * '.$cf['program'].' -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf > /dev/null');
+            // Crontab must end with an empty line or comment!
+			$cron_jobs = array(
+    		    '# --- ISPConfig ----',
+                '*/5 * * * * '.$cf['program'].' -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf > /dev/null 2>> /var/log/var/log/ispconfig/cron.log',
+    		    '# ------------------'
+            );
 		
 			// remove existing ispconfig cronjobs, in case the syntax has changed
 			foreach($cron_jobs as $key => $val) {
diff --git a/interface/web/monitor/lib/lang/en.lng b/interface/web/monitor/lib/lang/en.lng
index f7fb14e..4401bb5 100644
--- a/interface/web/monitor/lib/lang/en.lng
+++ b/interface/web/monitor/lib/lang/en.lng
@@ -35,6 +35,7 @@
 $wb['Show Mail warn-Log'] = 'Show Mail warn-Log';
 $wb['Show Mail err-Log'] = 'Show Mail err-Log';
 $wb['Show System-Log'] = 'Show System-Log';
+$wb['Show ISPC Cron-Log'] = 'Show ISPC Cron-Log';
 $wb['Show Freshclam-Log'] = 'Show Freshclam-Log';
 $wb['Show Clamav-Log'] = 'Show Clamav-Log';
 $wb['Show ISPConfig-Log'] = 'Show ISPConfig-Log';
diff --git a/interface/web/monitor/lib/module.conf.php b/interface/web/monitor/lib/module.conf.php
index ac9b486..dd68504 100644
--- a/interface/web/monitor/lib/module.conf.php
+++ b/interface/web/monitor/lib/module.conf.php
@@ -134,6 +134,10 @@
                   'target' 	=> 'content',
                   'link'	=> 'monitor/show_log.php?log=log_messages');
 
+$items[] = array( 'title' 	=> "Show ISPC Cron-Log",
+                  'target' 	=> 'content',
+                  'link'	=> 'monitor/show_log.php?log=log_ispc_cron');
+
 $items[] = array( 'title' 	=> "Show Freshclam-Log",
                   'target' 	=> 'content',
                   'link'	=> 'monitor/show_log.php?log=log_freshclam');
diff --git a/interface/web/monitor/show_log.php b/interface/web/monitor/show_log.php
index c00b7b4..150ba8d 100644
--- a/interface/web/monitor/show_log.php
+++ b/interface/web/monitor/show_log.php
@@ -64,6 +64,10 @@
 		$logId = 'log_messages';
 		$title = 'System (Server: ' . $_SESSION['monitor']['server_name'] . ')';
 		break;
+	case 'log_ispc_cron':
+		$logId = 'log_ispc_cron';
+		$title = 'System (Server: ' . $_SESSION['monitor']['server_name'] . ')';
+		break;
 	case 'log_freshclam':
 		$logId = 'log_freshclam';
 		$title = 'Freshclam - Log (Server: ' . $_SESSION['monitor']['server_name'] . ')';
diff --git a/server/cron_daily.php b/server/cron_daily.php
index 3c85c84..e186756 100644
--- a/server/cron_daily.php
+++ b/server/cron_daily.php
@@ -91,7 +91,7 @@
 $sql = "SELECT domain_id, domain, document_root FROM web_domain WHERE server_id = ".$conf["server_id"];
 $records = $app->db->queryAllRecords($sql);
 foreach($records as $rec) {
-	$yesterday = date("mdY",time() - 86400);
+	$yesterday = date("Ymd",time() - 86400);
 	$logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log');
 	if(@is_file($logfile)) {
 		$domain = escapeshellcmd($rec["domain"]);
@@ -110,7 +110,7 @@
 $sql = "SELECT domain_id, domain, document_root FROM web_domain WHERE server_id = ".$conf["server_id"];
 $records = $app->db->queryAllRecords($sql);
 foreach($records as $rec) {
-	$yesterday = date("mdY",time() - 86400);
+	$yesterday = date("Ymd",time() - 86400);
 	$logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log');
 	if(@is_file($logfile)) {
 		// Compress yesterdays logfile
@@ -118,7 +118,7 @@
 	}
 	
 	// delete logfiles after 30 days
-	$month_ago = date("mdY",time() - 86400 * 30);
+	$month_ago = date("Ymd",time() - 86400 * 30);
 	$logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log.gz');
 	if(@is_file($logfile)) {
 		unlink($logfile);
diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index cbd2417..e85e172 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -113,6 +113,7 @@
         $this->monitorMailWarnLog();
         $this->monitorMailErrLog();
         $this->monitorMessagesLog();
+        $this->monitorISPCCronLog();
         $this->monitorFreshClamLog();
         $this->monitorClamAvLog();
         $this->monitorIspConfigLog();
@@ -937,6 +938,43 @@
         $this->_delOldRecords($type, 10);
     }
 
+    function monitorISPCCronLog()
+    {
+        global $app;
+        global $conf;
+
+        /* the id of the server as int */
+        $server_id = intval($conf["server_id"]);
+
+        /** The type of the data */
+        $type = 'log_ispc_cron';
+
+        /* Get the data of the log */
+        $data = $this->_getLogData($type);
+
+        /*
+         * actually this info has no state.
+         * maybe someone knows better...???...
+         */
+        $state = 'no_state';
+
+        /*
+        Insert the data into the database
+        */
+        $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " .
+            "VALUES (".
+        $server_id . ", " .
+            "'" . $app->dbmaster->quote($type) . "', " .
+        time() . ", " .
+            "'" . $app->dbmaster->quote(serialize($data)) . "', " .
+            "'" . $state . "'" .
+            ")";
+        $app->dbmaster->query($sql);
+
+        /* The new data is written, now we can delete the old one */
+        $this->_delOldRecords($type, 10);
+    }
+    
     function monitorFreshClamLog()
     {
         global $app;
@@ -1092,6 +1130,9 @@
             case 'log_messages':
                 $logfile = '/var/log/messages';
                 break;
+            case 'log_ispc_cron':
+                $logfile = '/var/log/ispconfig/cron.log';
+                break;
             case 'log_freshclam':
                 $logfile = '/var/log/clamav/freshclam.log';
                 break;

--
Gitblit v1.9.1