#!/usr/bin/perl # Script zur Auswertung eiiner Kingpin Logdatei im BM Modus # # ################################################################################### $path='/var/log/'; # Path varible $datei='messages.log'; # file variable while($ARGV[0] =~ /^-/){ # switch processing $_=shift; if (/^-p/){ $path=(shift); } elsif (/^-f/){ $datei=(shift); } elsif (/^-h/){ die "money [-p path] -f [file]\n"; } else { die "unknown option:$_\n -h for help \n" ; } } open (LOG, $path.$datei)|| die "File not Found \n"; # source file open (STO, "> $datei.stol") || die "Write Error \n"; # stolen temp file open (DEP, "> $datei.depo") || die "Write Error \n"; # deposited temp file while () # input lines { s/\ +/\ /; # clean spaces if ($_ =~ /stole/){ ($user,$rest) = split(/stole/,$_,2); $rest=substr($rest,1,length($rest)); ($geld,@rest1) = split(/\ /,$rest,2); $tat='stole'; if ($tat eq 'stole'){ if ($geld =~ /^\$/){ $geld=substr($geld,1,length($geld)); if (exists $sumstol{$user}){ $temp = $sumstol{$user}; $geld = $temp + $geld; $sumstol{$user} = $geld; }else{ $sumstol{$user} = $geld; } } } } if ($_ =~ /deposited/){ ($user,$rest) = split(/deposited/,$_,2); $rest=substr($rest,1,length($rest)); ($geld,@rest1) = split(/\ /,$rest,2); $tat='deposited'; if ( $tat eq 'deposited'){ if ($geld =~ /^\$/){ $geld=substr($geld,1,length($geld)); if (exists $sumdespo{$user}){ $temp = $sumdespo{$user}; $geld = $temp + $geld; $sumdespo{$user} = $geld; }else{ $sumdespo{$user} = $geld; } } } } } #print STO map {"$_ => $sumstol{$_}\n"}keys %sumstol; $i=0; foreach $k (sort { $sumstol{$b} <=> $sumstol{$a} } keys %sumstol) { $i++; print STO "$i $k stolen => $sumstol{$k}\n"; } #print DEP map {"$_ => $sumdespo{$_}\n"}keys %sumdespo; $i=0; foreach $k (sort { $sumdespo{$b} <=> $sumdespo{$a} } keys %sumdespo) { $i++; print DEP "$i $k deposited => $sumdespo{$k}\n"; } close (LOG); close (STO); close (DEP); open (DEP, "$datei.depo") || die "File not Found\n"; open (EDP, "> DEPOSITED.txt") || die "Write Error \n"; while () { chop(); if ($_ ){ print EDP $_,"\n"; } } close (DEP); close (EDP); open (STO, "$datei.stol") || die "File not Found\n"; open (EST, "> STOLEN.txt") || die "Write Error \n"; while () { chop(); if ($_ ){ print EST $_,"\n"; } } close (STO); close (EST);