redray
2008-12-21 641cb3bc12271772fdc169ccf3c91430dac27bd0
cron errors got to logfile now and are available in monitor-section
6 files modified
70 ■■■■■ changed files
install/lib/installer_base.lib.php 14 ●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/en.lng 1 ●●●● patch | view | raw | blame | history
interface/web/monitor/lib/module.conf.php 4 ●●●● patch | view | raw | blame | history
interface/web/monitor/show_log.php 4 ●●●● patch | view | raw | blame | history
server/cron_daily.php 6 ●●●● patch | view | raw | blame | history
server/mods-available/monitor_core_module.inc.php 41 ●●●●● patch | view | raw | blame | history
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) {
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';
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');
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'] . ')';
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);
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;