Fwd: Added a fetchmail service

Kirk Bauer <[email protected]>
Newsgroups gmane.comp.log.logwatch.devel
Message-ID <[email protected]>
Fetchmail service...

------------------------------------------------------
Kirk Bauer <[email protected]>
http://linux.kaybee.org | www.logwatch.org
Author, Automating UNIX & Linux Administration




---------- Forwarded message ----------
From: Oron Peled <[email protected]>
Date: Thu, Oct 22, 2009 at 1:19 AM
Subject: Added a fetchmail service
To: [email protected]


Hi,

To my surprise, logwatch didn't have a fetchmail "service" files.
The attached files are my implementation of the service script and
a simple configuration (easily derived from one of the other services).
Here are links to these files in case the mailing list chops attachments:
 http://oron.fedorapeople.org/logwatch/fetchmail
 http://oron.fedorapeople.org/logwatch/fetchmail.conf

After reporting this on my Linux distro bug tracker:
 https://bugzilla.redhat.com/show_bug.cgi?id=528838
The package maintainer suggested that I'll send it upstream.

So here it is. Enjoy and thanks for maintaining a very nice tool for
all of us.

--
Oron Peled                                 Voice: +972-4-8228492
[email protected]                  http://users.actcom.co.il/~oron
No, You Can't Have My Rights, I'm Still Using Them

_______________________________________________
Logwatch-Devel mailing list
[email protected]
http://www2.list.logwatch.org:81/mailman/listinfo/logwatch-devel
fetchmail (text/plain, 2.4 KB)
##########################################################################
# $Id: fetchmail $
##########################################################################

########################################################
# This was written and is maintained by:
#    Oron Peled <oron \@\ actcom.net.il>
#
########################################################

my $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;

my %no_mail;
my %messages_for;
my %auth_fail;
my %conn_fail;

#Inits
open(DBG, "> /tmp/logwatch.txt") || die;

while (defined($ThisLine = <STDIN>)) {
	chomp($ThisLine);
	$ThisLine =~ s/^[a-zA-Z0-9]+: //;
	print DBG "$ThisLine\n";
	if($ThisLine =~ s/^No mail for (\S+) at (\S+)//) {
		$no_mail{"${1} at ${2}"}++;
	} elsif($ThisLine =~ /^reading message /) {
		# ignore
	} elsif($ThisLine =~ s/^Query status=[23]//) {
		# ignore. Counted below (Authorization, Connection)
	} elsif($ThisLine =~ s/^Authorization failure on (\S+)//) {
		$auth_fail{"${1}"}++;
	} elsif($ThisLine =~ s/^\S+ connection to \S+ failed: .*//) {
		# ignore. Counted below
	} elsif($ThisLine =~ s/^connection to (\S+) \[[^]]+\] failed: (.*).//) {
		$conn_fail{"${1} -- ${2}"}++;
	} elsif($ThisLine =~ s/^(\d+) messages? for (\S+) at (\S+).*.//) {
		$messages_for{"${2} at ${3}"} += $1;
	} else {
		chomp($ThisLine);
		# Report any unmatched entries...
		$OtherList{$ThisLine}++; 
	}
}

if (keys %messages_for) {
	my $total;
	print "\nMessages\n";
	foreach my $who (sort keys %messages_for) {
		print "   $who: $messages_for{$who}\n";
		$total += $messages_for{$who};
	}
	print "   Total: $total\n";
}

if (keys %conn_fail) {
	my $total;
	print "\nConnection failures\n";
	foreach my $who (sort keys %conn_fail) {
		print "   $who: $conn_fail{$who} Time(s)\n";
		$total += $conn_fail{$who};
	}
	print "   Total: $total\n";
}

if (keys %auth_fail) {
	my $total;
	print "\nAuthorization failures\n";
	foreach my $who (sort keys %auth_fail) {
		print "   $who: $auth_fail{$who} Time(s)\n";
		$total += $auth_fail{$who};
	}
	print "   Total: $total\n";
}

if (keys %no_mail) {
	my $total;
	print "\nNo Mail\n";
	foreach my $who (sort keys %no_mail) {
		print "   $who: $no_mail{$who} Time(s)\n";
		$total += $no_mail{$who};
	}
	print "   Total: $total\n";
}

if (keys %OtherList) {
	print "\n**Unmatched Entries**\n";
	foreach $line (sort {$OtherList{$b}<=>$OtherList{$a} } keys %OtherList) {
		print "   $line: $OtherList{$line} Time(s)\n";
	}
}

exit(0);

# vi: shiftwidth=3 tabstop=3 syntax=perl et
fetchmail.conf (text/plain, 884 B)
###########################################################################
# $Id: fetchmail $
###########################################################################

# You can put comments anywhere you want to.  They are effective for the
# rest of the line.

# this is in the format of <name> = <value>.  Whitespace at the beginning
# and end of the lines is removed.  Whitespace before and after the = sign
# is removed.  Everything is case *insensitive*.

# Yes = True  = On  = 1
# No  = False = Off = 0

Title = "Fetchmail"

# Which logfile group...
LogFile = maillog

*OnlyService = fetchmail
*RemoveHeaders

#Fetchmail Global ENV Variables

########################################################
# This was written and is maintained by:
#    Oron Peled <oron \@\ actcom.net.il>
#
########################################################

# vi: shiftwidth=3 tabstop=3 et
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.