You are here: start » resources » statistics » update.pl
You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in.
#!/usr/bin/perl -w
use strict;
use RRDs;
use Env qw(PATH);
$PATH='/home/stats/rrdtool/:/usr/local/bin/:/usr/bin/';
my $logFile='/service/qpsmtpd/log/main/current';
my $offFile='/home/stats/rrdtool/current.offset';
my $inCommand= "logtail $logFile $offFile | ";
$inCommand .= 'collapse_qpsmtpd_conn.pl | ';
$inCommand .= 'transaction-results.pl';
open INPUT, '-|', $inCommand or die "Can't process log file: @!";
my %types;
$types{'queued'}=0;
$types{'spamcop'}=0;
$types{'mail-from-temp'}=0;
$types{'ordb'}=0;
$types{'netcetera'}=0;
$types{'no-such-user'}=0;
$types{'early-talker'}=0;
$types{'queue-error'}=0;
$types{'spamhaus'}=0;
$types{'fqdn-required'}=0;
$types{'cbl'}=0;
$types{'clamav'}=0;
$types{'spf'}=0;
$types{'dul'}=0;
$types{'socks'}=0;
$types{'exploit'}=0;
$types{'web'}=0;
$types{'resident'}=0;
while (<INPUT>) {
my ($t, $nb) = split;
#printf("%s:%s\n", $t, $nb);
$types{$t}=$nb;
}
close INPUT;
RRDs::update("/home/stats/rrdtool/rrds/queued.rrd","N:".$types{'queued'});
RRDs::update("/home/stats/rrdtool/rrds/spamcop.rrd","N:".$types{'spamcop'});
RRDs::update("/home/stats/rrdtool/rrds/mail-from-temp.rrd","N:".$types{'mail-from-temp'});
RRDs::update("/home/stats/rrdtool/rrds/ordb.rrd","N:".$types{'ordb'});
RRDs::update("/home/stats/rrdtool/rrds/netcetera.rrd","N:".$types{'netcetera'});
RRDs::update("/home/stats/rrdtool/rrds/no-such-user.rrd","N:".$types{'no-such-user'});
RRDs::update("/home/stats/rrdtool/rrds/early-talker.rrd","N:".$types{'early-talker'});
RRDs::update("/home/stats/rrdtool/rrds/queue-error.rrd","N:".$types{'queue-error'});
RRDs::update("/home/stats/rrdtool/rrds/spamhaus.rrd","N:".$types{'spamhaus'});
RRDs::update("/home/stats/rrdtool/rrds/fqdn-required.rrd","N:".$types{'fqdn-required'});
RRDs::update("/home/stats/rrdtool/rrds/cbl.rrd","N:".$types{'cbl'});
RRDs::update("/home/stats/rrdtool/rrds/clamav.rrd","N:".$types{'clamav'});
RRDs::update("/home/stats/rrdtool/rrds/spf.rrd","N:".$types{'spf'});
RRDs::update("/home/stats/rrdtool/rrds/dul.rrd","N:".$types{'dul'});
RRDs::update("/home/stats/rrdtool/rrds/socks.rrd","N:".$types{'socks'});
RRDs::update("/home/stats/rrdtool/rrds/exploit.rrd","N:".$types{'exploit'});
RRDs::update("/home/stats/rrdtool/rrds/web.rrd","N:".$types{'web'});
RRDs::update("/home/stats/rrdtool/rrds/resident.rrd","N:".$types{'resident'});
my $ERR=RRDs::error;
die "ERROR while updating rrds: $ERR\n" if $ERR;