mirror of
https://bitbucket.org/jsuto/piler.git
synced 2025-06-12 23:27:03 +02:00
webui fixes
This commit is contained in:
@ -3,6 +3,10 @@
|
||||
$webuidir = "";
|
||||
$verbose = 0;
|
||||
|
||||
$archivesizeraw = $sqlsizeraw = $sphinxsizeraw = 0;
|
||||
$averagemessagesweekraw = $averagemessagesmonthraw = $averagemessagesizeraw = $averagesizedayraw = $averagesqlsizeraw = $averagesphinxsizeraw = 0;
|
||||
|
||||
|
||||
if(isset($_SERVER['argv'][1])) { $webuidir = $_SERVER['argv'][1]; }
|
||||
|
||||
for($i=2; $i<$_SERVER['argc']; $i++){
|
||||
@ -66,13 +70,42 @@ $mail = new ModelMailMail();
|
||||
list($totalmem, $meminfo, $totalswap, $swapinfo) = $health->meminfo();
|
||||
$shortdiskinfo = $health->diskinfo();
|
||||
|
||||
list($archive_size, $counters) = $counter->get_counters();
|
||||
list($archivesizeraw, $counters) = $counter->get_counters();
|
||||
|
||||
$archive_size = nice_size($archivesizeraw, ' ');
|
||||
|
||||
$sysinfo = $health->sysinfo();
|
||||
|
||||
$options = $health->get_options();
|
||||
|
||||
|
||||
/* these next counters are for projecting space */
|
||||
$averagemessagesweekraw = ($processed_emails[1]) / 7;
|
||||
$averagemessagesmonthraw = ($processed_emails[2]) / 30;
|
||||
$averagemessagesizeraw = $archivesizeraw / $counters['rcvd'];
|
||||
$averagesqlsizeraw = $sqlsizeraw / $counters['rcvd'];
|
||||
$averagesphinxsizeraw = $sphinxsizeraw / $counters['rcvd'];
|
||||
$averagesizedayraw = ($averagemessagesizeraw+$averagesqlsizeraw+$averagesphinxsizeraw) * $averagemessagesweekraw;
|
||||
foreach($shortdiskinfo as $part) {
|
||||
if( $part['partition'] == DATA_PARTITION ) { $datapart = $part['freespace']*1024; }
|
||||
}
|
||||
|
||||
$averagemessages = round($averagemessagesweekraw); // average of messages over the past week
|
||||
$averagemessagesize = nice_size($averagemessagesizeraw,' '); // average message size on disk
|
||||
$averagesqlsize = nice_size($averagesqlsizeraw,' '); // average metadata size in sql
|
||||
$averagesphinxsize = nice_size($averagesphinxsizeraw,' '); // average sphinx index
|
||||
$averagesizeday = nice_size($averagesizedayraw,' '); // average size per day
|
||||
$daysleftatcurrentrate = convert_days_ymd($datapart / $averagesizedayraw); // number of days of free space left
|
||||
if ( $averagemessagesweekraw > $averagemessagesmonthraw ) {
|
||||
$useagetrend = 1;
|
||||
} elseif( $averagemessagesweekraw < $averagemessagesmonthraw ) {
|
||||
$useagetrend = -1;
|
||||
} else {
|
||||
$useagetrend = 0;
|
||||
}
|
||||
|
||||
|
||||
/* start email message */
|
||||
|
||||
$msg = "From: " . SMTP_FROMADDR . EOL;
|
||||
$msg .= "To: " . ADMIN_EMAIL . EOL;
|
||||
$msg .= "Subject: =?UTF-8?Q?" . preg_replace("/\n/", "", my_qp_encode($text_daily_piler_report)) . "?=" . EOL;
|
||||
@ -81,7 +114,7 @@ $mail = new ModelMailMail();
|
||||
$msg .= EOL . EOL;
|
||||
|
||||
ob_start();
|
||||
|
||||
|
||||
include($webuidir . "/view/theme/default/templates/health/daily-report.tpl");
|
||||
|
||||
$msg .= ob_get_contents();
|
||||
|
@ -349,3 +349,20 @@ create table if not exists `google_imap` (
|
||||
key(`email`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `counter_stats` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`date` int(11) NOT NULL,
|
||||
`email` varchar(255) NOT NULL,
|
||||
`domain` varchar(255) NOT NULL,
|
||||
`sent` int(11) NOT NULL,
|
||||
`recd` int(11) NOT NULL,
|
||||
`sentsize` int(11) NOT NULL,
|
||||
`recdsize` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `date` (`date`),
|
||||
KEY `email` (`email`),
|
||||
KEY `domain` (`domain`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
|
||||
|
@ -7,5 +7,20 @@ create table if not exists `domain_user` (
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `counter_stats` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`date` int(11) NOT NULL,
|
||||
`email` varchar(255) NOT NULL,
|
||||
`domain` varchar(255) NOT NULL,
|
||||
`sent` int(11) NOT NULL,
|
||||
`recd` int(11) NOT NULL,
|
||||
`sentsize` int(11) NOT NULL,
|
||||
`recdsize` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `date` (`date`),
|
||||
KEY `email` (`email`),
|
||||
KEY `domain` (`domain`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
alter table metadata drop index message_id;
|
||||
|
||||
|
100
util/generate_stats.php
Normal file
100
util/generate_stats.php
Normal file
@ -0,0 +1,100 @@
|
||||
<?php
|
||||
// init/set default values
|
||||
$webuidir = '';
|
||||
$process_all = false;
|
||||
$start = NULL;
|
||||
$end = NULL;
|
||||
$timestart = microtime(true);
|
||||
|
||||
// get options from command line
|
||||
$opts = 'h::';
|
||||
$lopts = array(
|
||||
'webui:',
|
||||
'start::',
|
||||
'end::',
|
||||
);
|
||||
|
||||
if ( $options = getopt( $opts, $lopts ) )
|
||||
{
|
||||
if ( isset($options['webui']) )
|
||||
{
|
||||
$webuidir = $options['webui'];
|
||||
} else
|
||||
{
|
||||
echo("\nError: must provide path to WebUI directory\n\n"); // todo: language
|
||||
|
||||
display_help();
|
||||
exit;
|
||||
}
|
||||
|
||||
if ( isset($options['h']) )
|
||||
{
|
||||
display_help();
|
||||
exit;
|
||||
} elseif ( isset($options['start']) )
|
||||
{
|
||||
$start = $options['start'];
|
||||
} elseif ( isset($options['end']) )
|
||||
{
|
||||
$end = $options['end'];
|
||||
}
|
||||
} else {
|
||||
display_help();
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once($webuidir . "/config.php");
|
||||
require(DIR_SYSTEM . "/startup.php");
|
||||
date_default_timezone_set(TIMEZONE);
|
||||
|
||||
$loader = new Loader();
|
||||
|
||||
$language = new Language();
|
||||
Registry::set('language', $language);
|
||||
|
||||
if(MEMCACHED_ENABLED) {
|
||||
$memcache = new Memcache();
|
||||
foreach ($memcached_servers as $m){
|
||||
$memcache->addServer($m[0], $m[1]);
|
||||
}
|
||||
|
||||
Registry::set('memcache', $memcache);
|
||||
}
|
||||
|
||||
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE, DB_PREFIX);
|
||||
Registry::set('db', $db);
|
||||
|
||||
$loader->model('accounting/accounting');
|
||||
$messagestats = new ModelAccountingAccounting();
|
||||
|
||||
$_SESSION['username'] = 'cli-admin';
|
||||
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
|
||||
|
||||
extract($language->data);
|
||||
|
||||
//$day_to_process = strtotime($day_to_process);
|
||||
$records = $messagestats->run_counters($start,$end);
|
||||
|
||||
$timeend = microtime(true);
|
||||
$timegone = $timeend - $timestart;
|
||||
|
||||
echo("\nFinished Executing Statistics Generation\n");
|
||||
echo("*************************************************\n");
|
||||
echo("Start Date: ".date("d M Y",$records['starttimestamp'])."\n");
|
||||
echo("Stop Date: ".date("d M Y",$records['endtimestamp'])."\n");
|
||||
echo("Removed ".$records['deletedstats']." records\n");
|
||||
echo("Added ".$records['addedstats']." records\n");
|
||||
echo("Completed Run in ".$timegone." seconds\n\n");
|
||||
|
||||
# Functions
|
||||
function display_help() {
|
||||
$phpself = basename(__FILE__);
|
||||
echo("\nUsage: $phpself --webui [PATH] [OPTIONS...]\n\n");
|
||||
echo("\t--webui=\"[REQUIRED: path to the Piler WebUI Directory]\"\n\n");
|
||||
echo("options:\n");
|
||||
echo("\t-a Reruns statistics for all records in the message view\n");
|
||||
echo("\t-h Prints this help screen and exits\n");
|
||||
echo("\t--start=\"Beginning of date range to process, ok values are today, yesterday or DDMMMYYYY...anything php's strtotime can process. Optional, will default to beginning of current day.\"\n");
|
||||
echo("\t--stop=\"End of date range, same parameters as above. Optional (will default to end of current day)\"\n\n");
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user