From 80e7b0d7d17b0e9581fa56be484b8772d82261de Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 18 Nov 2009 11:19:42 -0500
Subject: [PATCH] Added code to delete old remote sessions.
---
server/cron_daily.php | 68 +++++++++++++++++++++++++++------
1 files changed, 55 insertions(+), 13 deletions(-)
diff --git a/server/cron_daily.php b/server/cron_daily.php
index 37f4f4d..c5d972f 100644
--- a/server/cron_daily.php
+++ b/server/cron_daily.php
@@ -48,13 +48,13 @@
$sql = "SELECT mailuser_id,maildir FROM mail_user WHERE server_id = ".$conf["server_id"];
$records = $app->db->queryAllRecords($sql);
foreach($records as $rec) {
- if(@is_file($rec["maildir"].'/.ispconfig_mailsize')) {
+ if(@is_file($rec["maildir"].'/ispconfig_mailsize')) {
// rename file
- rename($rec["maildir"].'/.ispconfig_mailsize',$rec["maildir"].'/.ispconfig_mailsize_save');
+ rename($rec["maildir"].'/ispconfig_mailsize',$rec["maildir"].'/ispconfig_mailsize_save');
// Read the file
- $lines = file($rec["maildir"].'/.ispconfig_mailsize_save');
+ $lines = file($rec["maildir"].'/ispconfig_mailsize_save');
$mail_traffic = 0;
foreach($lines as $line) {
$mail_traffic += intval($line);
@@ -62,13 +62,13 @@
unset($lines);
// Delete backup file
- if(@is_file($rec["maildir"].'/.ispconfig_mailsize_save')) unlink($rec["maildir"].'/.ispconfig_mailsize_save');
+ if(@is_file($rec["maildir"].'/ispconfig_mailsize_save')) unlink($rec["maildir"].'/ispconfig_mailsize_save');
// Save the traffic stats in the sql database
$tstamp = date("Y-m");
$sql = "SELECT * FROM mail_traffic WHERE month = '$tstamp' AND mailuser_id = ".$rec["mailuser_id"];
- $tr = $app->db->queryOneRecord($sql);
+ $tr = $app->dbmaster->queryOneRecord($sql);
$mail_traffic += $tr["traffic"];
if($tr["traffic_id"] > 0) {
@@ -76,7 +76,7 @@
} else {
$sql = "INSERT INTO mail_traffic (month,mailuser_id,traffic) VALUES ('$tstamp',".$rec["mailuser_id"].",$mail_traffic)";
}
- $app->db->query($sql);
+ $app->dbmaster->query($sql);
echo $sql;
}
@@ -87,22 +87,64 @@
// Create webalizer statistics
#######################################################################################################
+function setConfigVar( $filename, $varName, $varValue ) {
+ if($lines = @file($filename)) {
+ $out = '';
+ $found = 0;
+ foreach($lines as $line) {
+ list($key, $value) = split("[\t= ]+", $line, 2);
+ if($key == $varName) {
+ $out .= $varName." ".$varValue."\n";
+ $found = 1;
+ } else {
+ $out .= $line;
+ }
+ }
+ if($found == 0) {
+ //* add \n if the last line does not end with \n or \r
+ if(substr($out,-1) != "\n" && substr($out,-1) != "\r") $out .= "\n";
+ //* add the new line at the end of the file
+ if($append == 1) $out .= $varName." ".$varValue."\n";
+ }
+
+ file_put_contents($filename,$out);
+ }
+}
+
$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("Ymd",time() - 86400);
$logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log');
- if(@is_file($logfile)) {
- $domain = escapeshellcmd($rec["domain"]);
- $statsdir = escapeshellcmd($rec["document_root"].'/web/stats');
- $webalizer = '/usr/bin/webalizer';
- $webalizer_conf = '/etc/webalizer/webalizer.conf';
- if(!@is_dir($statsdir)) mkdir($statsdir);
- exec("$webalizer -c $webalizer_conf -n $domain -s $domain -r $domain -q -T -o $statsdir $logfile");
+ if(!@is_file($logfile)) {
+ $logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log.gz');
+ if(!@is_file($logfile)) {
+ continue;
}
}
+$domain = escapeshellcmd($rec["domain"]);
+$statsdir = escapeshellcmd($rec["document_root"].'/web/stats');
+$webalizer = '/usr/bin/webalizer';
+$webalizer_conf_main = '/etc/webalizer/webalizer.conf';
+$webalizer_conf = escapeshellcmd($rec["document_root"].'/log/webalizer.conf');
+
+if(!@is_file($webalizer_conf)) {
+ exec("cp $webalizer_conf_main $webalizer_conf");
+}
+
+if(@is_file($webalizer_conf)) {
+ setConfigVar($webalizer_conf, 'Incremental', 'yes');
+ setConfigVar($webalizer_conf, 'IncrementalName', $statsdir.'/webalizer.current');
+ setConfigVar($webalizer_conf, 'HistoryName', $statsdir.'/webalizer.hist');
+}
+
+if(!@is_dir($statsdir)) mkdir($statsdir);
+ exec("$webalizer -c $webalizer_conf -n $domain -s $domain -r $domain -q -T -p -o $statsdir $logfile");
+}
+
#######################################################################################################
// Manage and compress web logfiles
#######################################################################################################
--
Gitblit v1.9.1