tbrehm
2010-03-21 b0ebbdedaa0805599b97a9d3bbc96c0a5cf2bbac
server/cron_daily.php
@@ -92,7 +92,7 @@
      $out = '';
      $found = 0;
      foreach($lines as $line) {
         list($key, $value) = split("[\t= ]+", $line, 2);
         list($key, $value) = preg_split("/[\t= ]+/", $line, 2);
         if($key == $varName) {
            $out .= $varName." ".$varValue."\n";
            $found = 1;
@@ -181,13 +181,14 @@
$sql = "SELECT domain_id, domain, document_root, system_user FROM web_domain WHERE server_id = ".$conf["server_id"];
$records = $app->db->queryAllRecords($sql);
$app->uses('system');
if(is_array($records)) {
   foreach($records as $rec){
      $tmp_path = realpath(escapeshellcmd($rec["document_root"].'/tmp'));
      if($tmp_path != '' && strlen($tmp_path) > 10 && is_dir($tmp_path)){
      if($tmp_path != '' && strlen($tmp_path) > 10 && is_dir($tmp_path) && $app->system->is_user($rec['system_user'])){
         exec("cd ".$tmp_path."; find -ctime +1 -user ".escapeshellcmd($rec['system_user'])." | grep -v -w .no_delete | xargs rm &> /dev/null");
         exec("cd ".$tmp_path."; find -ctime +1 -user www-data | grep -v -w .no_delete | xargs rm &> /dev/null");
         exec("cd ".$tmp_path."; find -ctime +1 -user wwwrun | grep -v -w .no_delete | xargs rm &> /dev/null");
         if($app->system->is_user('www-data')) exec("cd ".$tmp_path."; find -ctime +1 -user www-data | grep -v -w .no_delete | xargs rm &> /dev/null");
         if($app->system->is_user('wwwrun')) exec("cd ".$tmp_path."; find -ctime +1 -user wwwrun | grep -v -w .no_delete | xargs rm &> /dev/null");
      }
   }
}
@@ -224,17 +225,19 @@
   /* Then delete server by server */
   foreach($records as $server) {
      $sql = "DELETE FROM sys_datalog WHERE tstamp < " . $tstamp .
         " AND server_id != 0 " . // to be more secure!
         " AND server_id = " . intval($server['server_id']) .
         " AND datalog_id < " . intval($server['updated']);
      $tmp_server_id = intval($server['server_id']);
      if($tmp_server_id > 0) {
         $sql =    "DELETE FROM sys_datalog WHERE tstamp < " . $tstamp .
               " AND server_id = " . intval($server['server_id']) .
               " AND datalog_id < " . intval($server['updated']);
      }
//      echo $sql . "\n";
      $app->dbmaster->query($sql);
   }
}
#######################################################################################################
// enforce traffic quota (only the "master-server")
// enforce traffic quota (run only on the "master-server")
#######################################################################################################
if ($app->dbmaster == $app->db) {
@@ -248,7 +251,7 @@
      foreach($records as $rec) {
         
         $web_traffic_quota = $rec['traffic_quota'];
         $domain = $rec['web_domain'];
         $domain = $rec['domain'];
         
         // get the client
         /*
@@ -261,7 +264,7 @@
         */
         
         //* get the traffic
         $tmp = $app->db->query("SELECT traffic_bytes FROM web_traffic WHERE traffic_date like '$current_month%' AND hostname = '$domain'");
         $tmp = $app->db->queryOneRecord("SELECT traffic_bytes FROM web_traffic WHERE traffic_date like '$current_month%' AND hostname = '$domain'");
         $web_traffic = $tmp['traffic_bytes']/1024/1024;
         
         //* Website is over quota, we will disable it
@@ -269,12 +272,12 @@
            ($client_traffic_quota > 0 && $web_traffic > $client_traffic_quota) ||
            ($reseller_traffic_quota > 0 && $web_traffic > $reseller_traffic_quota)) {*/
         if($web_traffic_quota > 0 && $web_traffic > $web_traffic_quota) {
            $app->db->datalogUpdate('web_domain', "traffic_quota_lock = 'y',active = 'n'", 'domain_id', $rec['domain_id']);
            $app->dbmaster->datalogUpdate('web_domain', "traffic_quota_lock = 'y',active = 'n'", 'domain_id', $rec['domain_id']);
            $app->log("Traffic quota for ".$rec['domain_id']." Exceeded. Disabling website.",LOGLEVEL_DEBUG);
         } else {
            //* unlock the website, if traffic is lower then quota
            if($rec['traffic_quota_lock'] == 'y') {
               $app->db->datalogUpdate('web_domain', "traffic_quota_lock = 'n',active = 'y'", 'domain_id', $rec['domain_id']);
               $app->dbmaster->datalogUpdate('web_domain', "traffic_quota_lock = 'n',active = 'y'", 'domain_id', $rec['domain_id']);
               $app->log("Traffic quota for ".$rec['domain_id']." ok again. Enabling website.",LOGLEVEL_DEBUG);
            }
         }