#!/usr/bin/perl -w # sb@plzk.de use strict; unless (@ARGV){ print "Aufruf mit ./spam.pl Log-Datei.log"}; open SPAM, $ARGV[0] or die $!; my @spam = ; my %benutzer = (); foreach my $zeile (@spam) { if ($zeile =~ m/.html; from=<(.*)> to=<(.*)(\@.*)> proto/) { werte_sammeln($2); } } print "Postfix postgrey-stats der letzten 30 Tage\n"; printf("%-30s %-20s\n", "Systembenutzer:", "greylisted Mails:"); linie(70); for my $name (keys %benutzer) { printf("%-30s %-20d\n", $name, $benutzer{$name}{'score'}); } sub werte_sammeln { my $alias = shift; unless ($alias) { $benutzer{$alias}{'score'} = 0; } $benutzer{$alias}{'score'}++; } sub linie { my $laenge = shift; print "-" x $laenge . "\n";; }