tbrehm
2012-01-04 5c38f2cb6efe14ec205f6b312d057bbba3d98e02
server/cron_daily.php
@@ -132,6 +132,8 @@
   $webalizer = '/usr/bin/webalizer';
   $webalizer_conf_main = '/etc/webalizer/webalizer.conf';
   $webalizer_conf = escapeshellcmd($rec['document_root'].'/log/webalizer.conf');
   if(is_file($statsdir.'/index.php')) unlink($statsdir.'/index.php');
   if(!@is_file($webalizer_conf)) {
      copy($webalizer_conf_main,$webalizer_conf);
@@ -178,7 +180,7 @@
   
   if(is_file($awstats_website_conf_file)) unlink($awstats_website_conf_file);
   
   $sql = "SELECT domain FROM web_domain WHERE (type = 'alias' OR AND type = 'subdomain') server_id = ".$conf['server_id'];
   $sql = "SELECT domain FROM web_domain WHERE (type = 'alias' OR type = 'subdomain') server_id = ".$conf['server_id'];
   $aliases = $app->db->queryAllRecords($sql);
   $aliasdomain = '';
   
@@ -200,12 +202,44 @@
   if(is_link('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log')) unlink('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log');
   symlink($logfile,'/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log');
   
   $awmonth = date("n");
   $awyear = date("Y");
   if (date("d") == 1) {
      $awmonth = date("m")-1;
      if (date("m") == 1) {
         $awyear = date("Y")-1;
         $awmonth = "12";
      }
   }
   // awstats_buildstaticpages.pl -update -config=mydomain.com -lang=en -dir=/var/www/domain.com/web/stats -awstatsprog=/path/to/awstats.pl
   $command = "$awstats_buildstaticpages_pl -update -config='$domain' -lang=en -dir='$statsdir' -awstatsprog='$awstats_pl'";
   // $command = "$awstats_buildstaticpages_pl -update -config='$domain' -lang=".$conf['language']." -dir='$statsdir' -awstatsprog='$awstats_pl'";
   $command = "$awstats_buildstaticpages_pl -month='$awmonth' -year='$awyear' -update -config='$domain' -lang=".$conf['language']." -dir='$statsdir' -awstatsprog='$awstats_pl'";
   if (date("d") == 2) {
      $awmonth = date("m")-1;
      if (date("m") == 1) {
         $awyear = date("Y")-1;
         $awmonth = "12";
      }
      $statsdirold = $statsdir."/".$awyear."-".$awmonth."/";
      mkdir($statsdirold);
      $files = scandir($statsdir);
      foreach ($files as $file) {
         if (substr($file,0,1) != "." && !is_dir("$statsdir"."/"."$file") && substr($file,0,1) != "w" && substr($file,0,1) != "i") copy("$statsdir"."/"."$file","$statsdirold"."$file");
      }
   }
   
   if($awstats_pl != '' && $awstats_buildstaticpages_pl != '' && fileowner($awstats_pl) == 0 && fileowner($awstats_buildstaticpages_pl) == 0) {
      exec($command);
      rename($rec['document_root'].'/web/stats/awstats.'.$domain.'.html',$rec['document_root'].'/web/stats/index.html');
      if(is_file($rec['document_root'].'/web/stats/index.html')) unlink($rec['document_root'].'/web/stats/index.html');
      rename($rec['document_root'].'/web/stats/awstats.'.$domain.'.html',$rec['document_root'].'/web/stats/awsindex.html');
      if(!is_file($rec['document_root']."/web/stats/index.php")) copy("/usr/local/ispconfig/server/conf/awstats_index.php.master",$rec['document_root']."/web/stats/index.php");
      $app->log('Created awstats statistics with command: '.$command,LOGLEVEL_DEBUG);
   } else {
      $app->log("No awstats statistics created. Either $awstats_pl or $awstats_buildstaticpages_pl is not owned by root user.",LOGLEVEL_WARN);
@@ -248,6 +282,15 @@
   if(@is_file($logfile)) {
      unlink($logfile);
   }
   //* Delete older Log files, in case that we missed them before due to serverdowntimes.
   $datepart = date('Ym',time() - 86400 * 31 * 2);
   $logfile = escapeshellcmd($rec['document_root']).'/log/'.$datepart.'*-access.log.gz';
   exec('rm -f '.$logfile);
   $logfile = escapeshellcmd($rec['document_root']).'/log/'.$datepart.'*-access.log';
   exec('rm -f '.$logfile);
}
#######################################################################################################
@@ -363,7 +406,7 @@
   $current_month = date('Y-m');
   //* Check website traffic quota
   $sql = "SELECT sys_groupid,domain_id,domain,traffic_quota,traffic_quota_lock FROM web_domain WHERE traffic_quota > 0 and type = 'vhost'";
   $sql = "SELECT sys_groupid,domain_id,domain,traffic_quota,traffic_quota_lock FROM web_domain WHERE (traffic_quota > 0 or traffic_quota_lock = 'y') and type = 'vhost'";
   $records = $app->db->queryAllRecords($sql);
   if(is_array($records)) {
      foreach($records as $rec) {
@@ -435,8 +478,16 @@
if($backup_dir != '') {
   
   if(isset($server_config['backup_dir_ftpread']) && $server_config['backup_dir_ftpread'] == 'y') {
      $backup_dir_permissions = 0755;
   } else {
      $backup_dir_permissions = 0750;
   }
   if(!is_dir($backup_dir)) {
      mkdir(escapeshellcmd($backup_dir), 0750, true);
      mkdir(escapeshellcmd($backup_dir), $backup_dir_permissions, true);
   } else {
      chmod(escapeshellcmd($backup_dir), $backup_dir_permissions);
   }
   
   $sql = "SELECT * FROM web_domain WHERE type = 'vhost'";
@@ -452,18 +503,28 @@
            $web_group = $rec['system_group'];
            $web_id = $rec['domain_id'];
            $web_backup_dir = $backup_dir.'/web'.$web_id;
            if(!is_dir($web_backup_dir)) mkdir($web_backup_dir, 0755);
            chmod($web_backup_dir, 0755);
            chown($web_backup_dir, 'root');
            chgrp($web_backup_dir, 'root');
            if(!is_dir($web_backup_dir)) mkdir($web_backup_dir, 0750);
            chmod($web_backup_dir, 0750);
            if(isset($server_config['backup_dir_ftpread']) && $server_config['backup_dir_ftpread'] == 'y') {
               chown($web_backup_dir, $rec['system_user']);
               chgrp($web_backup_dir, $rec['system_group']);
            } else {
               chown($web_backup_dir, 'root');
               chgrp($web_backup_dir, 'root');
            }
            exec('cd '.escapeshellarg($web_path).' && sudo -u '.escapeshellarg($web_user).' find . -group '.escapeshellarg($web_group).' -print | zip -y '.escapeshellarg($web_backup_dir.'/web.zip').' -@');
            chown($web_backup_dir.'/web.zip', $rec['system_user']);
            chgrp($web_backup_dir.'/web.zip', $rec['system_group']);
            chmod($web_backup_dir.'/web.zip', 0750);
            
            // Rename or remove old backups
            $backup_copies = intval($rec['backup_copies']);
            if(is_file($web_backup_dir.'/web.'.$backup_copies.'.zip')) unlink($web_backup_dir.'/web.'.$backup_copies.'.zip');
            //* delete any older backup copies that previously existed
            for ($n = $backup_copies; $n <= 10; $n++) {
               if(is_file($web_backup_dir.'/web.'.$n.'.zip')) unlink($web_backup_dir.'/web.'.$n.'.zip');
            }
            for($n = $backup_copies - 1; $n >= 1; $n--) {
               if(is_file($web_backup_dir.'/web.'.$n.'.zip')) {
                  rename($web_backup_dir.'/web.'.$n.'.zip',$web_backup_dir.'/web.'.($n+1).'.zip');
@@ -475,7 +536,9 @@
            // Create backupdir symlink
            if(is_link($web_path.'/backup')) unlink($web_path.'/backup');
            symlink($web_backup_dir,$web_path.'/backup');
            chmod($web_path.'/backup', 0755);
            // chmod($web_path.'/backup', 0755);
            chown($web_path.'/backup', $rec['system_user']);
            chgrp($web_path.'/backup', $rec['system_group']);
            
         }