Blame scripts/services/qmail-pop3ds

Packit 57988d
##########################################################################
Packit 57988d
# $Id$
Packit 57988d
##########################################################################
Packit 57988d
# $Log: qmail-pop3ds,v $
Packit 57988d
# Revision 1.3  2008/06/30 23:07:51  kirk
Packit 57988d
# fixed copyright holders for files where I know who they should be
Packit 57988d
#
Packit 57988d
# Revision 1.2  2008/03/24 23:31:26  kirk
Packit 57988d
# added copyright/license notice to each script
Packit 57988d
#
Packit 57988d
# Revision 1.1  2005/09/07 00:37:59  bjorn
Packit 57988d
# New qmail multilog files written by Bob Hutchinson
Packit 57988d
#
Packit 57988d
##########################################################################
Packit 57988d
Packit 57988d
#######################################################
Packit 57988d
## Copyright (c) 2008 Bob Hutchinson
Packit 57988d
## Covered under the included MIT/X-Consortium License:
Packit 57988d
##    http://www.opensource.org/licenses/mit-license.php
Packit 57988d
## All modifications and contributions by other persons to
Packit 57988d
## this script are assumed to have been donated to the
Packit 57988d
## Logwatch project and thus assume the above copyright
Packit 57988d
## and licensing terms.  If you want to make contributions
Packit 57988d
## under your own copyright or a different license this
Packit 57988d
## must be explicitly stated in the contribution an the
Packit 57988d
## Logwatch project reserves the right to not accept such
Packit 57988d
## contributions.  If you have made significant
Packit 57988d
## contributions to this script and want to claim
Packit 57988d
## copyright please contact logwatch-devel@lists.sourceforge.net.
Packit 57988d
#########################################################
Packit 57988d
Packit 57988d
$Detail         = $ENV{'LOGWATCH_DETAIL_LEVEL'};
Packit 57988d
$QmailDetail    = $ENV{'qmail_high_detail'};
Packit 57988d
$QmailThreshold = $ENV{'threshold'};
Packit 57988d
$ToThreshold    = $ENV{'to_threshold'};
Packit 57988d
$FromThreshold  = $ENV{'from_threshold'};
Packit 57988d
Packit 57988d
while (defined($ThisLine = <STDIN>)) {
Packit 57988d
	if (
Packit 57988d
		( $ThisLine =~ /status: / ) or
Packit 57988d
		( $ThisLine =~ /end (\d+) status \d+/ ) or
Packit 57988d
		( $ThisLine =~ / LOG5/ ) or
Packit 57988d
		( $ThisLine =~ /qmail-popup/ )
Packit 57988d
		)
Packit 57988d
	{
Packit 57988d
		# We don't care about these
Packit 57988d
	}
Packit 57988d
	elsif ( ($pid1,$RemoteServer) = ( $ThisLine =~ /pid (\d+) from (.*)/ ) )
Packit 57988d
	{
Packit 57988d
		$From{$RemoteServer}++;
Packit 57988d
		$TotalFrom++;
Packit 57988d
	}
Packit 57988d
	elsif ( ($pid2,$LocalServer) = ( $ThisLine =~ /ok (\d+) \d+:(.*):995\s+.*/ ) )
Packit 57988d
	{
Packit 57988d
		$To{$LocalServer}++;
Packit 57988d
		$TotalTo++;
Packit 57988d
	}
Packit 57988d
	elsif ( ($Warning) = ( $ThisLine =~ /warning: (.*)/i ) )
Packit 57988d
	{
Packit 57988d
		$Warnings{$Warning}++;
Packit 57988d
	}
Packit 57988d
	else
Packit 57988d
	{
Packit 57988d
		# Report any unmatched entries...
Packit 57988d
		push @OtherList,$ThisLine;
Packit 57988d
	}
Packit 57988d
}
Packit 57988d
Packit 57988d
if ($QmailDetail >= 1)
Packit 57988d
{
Packit 57988d
	if ($QmailThreshold > 0)
Packit 57988d
	{
Packit 57988d
		if (($FromThreshold < 0) or ($FromThreshold eq ''))
Packit 57988d
		{
Packit 57988d
			$FromThreshold = $QmailThreshold;
Packit 57988d
	}
Packit 57988d
		if (($ToThreshold < 0) or ($ToThreshold eq ''))
Packit 57988d
		{
Packit 57988d
			$ToThreshold = $QmailThreshold;
Packit 57988d
		}
Packit 57988d
	}
Packit 57988d
Packit 57988d
	if (($FromThreshold < 0) or ($FromThreshold eq ''))
Packit 57988d
	{
Packit 57988d
		$FromThreshold = 0;
Packit 57988d
	}
Packit 57988d
	if (($ToThreshold < 0) or ($ToThreshold eq ''))
Packit 57988d
	{
Packit 57988d
		$ToThreshold = 0;
Packit 57988d
	}
Packit 57988d
Packit 57988d
	if ( (keys %From) )
Packit 57988d
	{
Packit 57988d
		print "\nConnections from (Threshold of " . $FromThreshold . "):\n";
Packit 57988d
		$threshold_reached=0;
Packit 57988d
		foreach $Line (sort {$From{$b} <=> $From{$a}} keys %From)
Packit 57988d
		{
Packit 57988d
			if ($From{$Line} >= $FromThreshold)
Packit 57988d
			{
Packit 57988d
				$threshold_reached=1;
Packit 57988d
				print "\t" . $Line . " - ". $From{$Line} . " Time(s)\n";
Packit 57988d
			}
Packit 57988d
		}
Packit 57988d
		if ($threshold_reached < 1)
Packit 57988d
		{
Packit 57988d
			print "\t" . "None found above the threshold\n";
Packit 57988d
		}
Packit 57988d
	}
Packit 57988d
Packit 57988d
	if ( (keys %To) )
Packit 57988d
	{
Packit 57988d
		print "\nConnections to (Threshold of " . $ToThreshold . "):\n";
Packit 57988d
		$threshold_reached=0;
Packit 57988d
		foreach $Line (sort {$To{$b} <=> $To{$a}} keys %To)
Packit 57988d
		{
Packit 57988d
			if ($To{$Line} >= $ToThreshold)
Packit 57988d
			{
Packit 57988d
				$threshold_reached=1;
Packit 57988d
				print "\t" . $Line . " - ". $To{$Line} . " Time(s)\n";
Packit 57988d
			}
Packit 57988d
		}
Packit 57988d
		if ($threshold_reached < 1)
Packit 57988d
		{
Packit 57988d
			print "\t" . "None found above the threshold\n";
Packit 57988d
		}
Packit 57988d
	}
Packit 57988d
}
Packit 57988d
Packit 57988d
if ($TotalFrom or $TotalTo) {
Packit 57988d
	print "\nTotals:\n";
Packit 57988d
	print "\tRemote connections $TotalFrom\n";
Packit 57988d
	print "\tLocal connections $TotalTo\n";
Packit 57988d
}
Packit 57988d
Packit 57988d
if ( (keys %Warnings) ) {
Packit 57988d
   print "\nWarnings:\n";
Packit 57988d
   foreach $Line (sort {$Warnings{$b} <=> $Warnings{$a}} keys %Warnings) {
Packit 57988d
      print "\t" . $Line . " - ". $Warnings{$Line} . " Time(s)\n";
Packit 57988d
   }
Packit 57988d
}
Packit 57988d
Packit 57988d
if (($#OtherList >= 0) and (not $IngoreUnmatched)){
Packit 57988d
	print "\n**Unmatched Entries**\n";
Packit 57988d
	print @OtherList;
Packit 57988d
}
Packit 57988d
Packit 57988d
exit(0);
Packit 57988d
Packit 57988d
# vi: shiftwidth=3 tabstop=3 syntax=perl et
Packit 57988d
# Local Variables:
Packit 57988d
# mode: perl
Packit 57988d
# perl-indent-level: 3
Packit 57988d
# indent-tabs-mode: nil
Packit 57988d
# End: