diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index a62e1d965356a1f326b042669c0522c0d7f1d778..5e6b42f5f5a9a5821bff1309db9c3a571e97ee32 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1042,9 +1042,12 @@ class installer_base { 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 @@ class installer_base { 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 f7fb14e8b847a0495055894e830785231212eb36..4401bb525ffdc435066dd9c252301489399dbde4 100644 --- a/interface/web/monitor/lib/lang/en.lng +++ b/interface/web/monitor/lib/lang/en.lng @@ -35,6 +35,7 @@ $wb['Show Mail-Log'] = 'Show Mail-Log'; $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 ac9b4861a24a560ba09be425caebcbcf180cf22b..dd68504afa24693063196bcaf79a90c71abd37b5 100644 --- a/interface/web/monitor/lib/module.conf.php +++ b/interface/web/monitor/lib/module.conf.php @@ -134,6 +134,10 @@ $items[] = array( 'title' => "Show System-Log", '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 c00b7b450fe308551e06b1ef1fb97c13d2711980..150ba8d6017ea1e89f97fb67c43a7b622c41d2bd 100644 --- a/interface/web/monitor/show_log.php +++ b/interface/web/monitor/show_log.php @@ -64,6 +64,10 @@ switch($logParam) { $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 3c85c84dbc07f99a02b9774bb88de6f82fc28251..e186756e76977d83aaf6c1499da549c570874dac 100644 --- a/server/cron_daily.php +++ b/server/cron_daily.php @@ -91,7 +91,7 @@ foreach($records as $rec) { $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 @@ foreach($records as $rec) { $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 @@ foreach($records as $rec) { } // 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 cbd241703e7aa3dc56d464a7024ea9ef34e37251..e85e172c7a733db52508a4411f7aa29a680d2110 100644 --- a/server/mods-available/monitor_core_module.inc.php +++ b/server/mods-available/monitor_core_module.inc.php @@ -113,6 +113,7 @@ class monitor_core_module { $this->monitorMailWarnLog(); $this->monitorMailErrLog(); $this->monitorMessagesLog(); + $this->monitorISPCCronLog(); $this->monitorFreshClamLog(); $this->monitorClamAvLog(); $this->monitorIspConfigLog(); @@ -937,6 +938,43 @@ function monitorMailLog() $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 @@ function monitorMailLog() 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;