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