Anzahl der Spam-Mails auswerten

Aus Wiki.csoft.at

Kaspersky Anti-Spam 2.0

Nachfolgendes Perl-Script wertet die /var/log/maillog aus und gibt eine Liste mit der Anzahl der Spam-Mails und deren Gesamtsumme zurück

#!/usr/bin/perl
# Kaspersky E-Mail gateway protection: maillog auswerten
$file=shift;
if (!$file) {
  print "Wer kriegt die meisten Spam's?\n";
  print "maillog als Parameter angeben!\n";
  exit 1;
}
open (INPUT, $file) or die "$file not found.\n";
  while (<INPUT>){
    chop $_;
    ($x, $spam) = split(/ spam_status=yes /,$_);
    ($x, $spam) = split(/to=|\)/, $spam);
    if ($spam) {
      if ($spam =~ /;/) {
        @spam=split(/;/,$spam);
        foreach(@spam) {
          push(@uniq, $_) unless $seen{$_}++;
          $z++;
        }
      } else {
        push(@uniq, $spam) unless $seen{$spam}++;
        $z++;
      }
    }
  }
close INPUT;
foreach $spam (sort {$seen{$b}<=>$seen{$a}} keys %seen) {
  print $seen{$spam},"\t",$spam,"\n";
}
print "$z\tTOTAL\n";
exit 0;


Siehe auch