#!/usr/bin/perl # Script zur Umwandlung der im access.log vorhanden Zeitangabe (sekunden seit 1970) # in das Zeitformat DAY Yearday.month.year hour.min:sec # Selektion nach datum und ipnummer # erstellt von: Ralph Frommann # erstellt am : 27.04.1999 # letzte Aenderung am : 03.05.1999 # # ################################################################################### $path='/var/squid/logs/'; # Pfad Variable $datei='access.log'; # Datei Variable $keine_eingabe='9999'; # Vorbelegung wenn keine Eingabe $ipnr=$keine_eingabe; # Variable fuer IP-Nummer $datum=$keine_eingabe; $groe=0; $verg='127.0.0.1'; # Variable fuer Datumseingabe @tage=('So','Mo','Di','Mi','Do','Fr','Sa'); # ARRAY fuer die Wochentage $pathN='/root/'; while($ARGV[0] =~ /^-/){ # Schalter Verarbeitung $_=shift; if (/^-p/){ $path=(shift); } elsif (/^-f/){ $datei=(shift); } elsif (/^-d/){ $datum=(shift); } elsif (/^-g/){ $groe=(shift); } elsif (/^-n/){ $ipnr=(shift); } elsif (/^-h/){ die "umwand [-d ttmmyyyy] [-n ipnummer] [-p path] [-g groesse in MB 1.02] -f [file]\n"; } else { die "unknown option:$_\n -h for help \n" ; } } open (DATEI, $pathN.Namen)|| die "Datei nicht vorhanden 1$pathN \n"; open (LOG, $path.$datei)|| die "Datei nicht vorhanden \n"; while () { s/\ +/\ /; # ersetze mehere Leerzeichen durch eins ($zahl,$squidid,$ipnummer,$dummy1,$dummy2,$dummy3,$adresse, @rest) = split(/\ /,$_,8 ); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime $zahl; ++$mon; if (length($mday)==1){$mday='0'.$mday;} if (length($mon)==1){$mon='0'.$mon;} if (length($hour)==1){$hour='0'.$hour;} if (length($min)==1){$min='0'.$min;} if (length($sec)==1){$sec='0'.$sec;} $verdat=''; $verdat=($mday . ($mon) . (1900+$year)); if ((($ipnr eq $ipnummer )||($ipnr eq $keine_eingabe))&&(($verdat eq $datum)||($datum eq $keine_eingabe))){ if ($ipnummer != $verg){ open (DATEI, $pathN.Namen)|| die "Datei nicht vorhanden \n"; while (){ chomp; if (/$ipnummer/){ @ipuname= $_; last; } else { @ipuname=($ipnummer,"Kein Name Prüfen !!!!");} } close(DATEI); $groesse=$dummy2/1048576; if ($groesse >= $groe){ print @tage[$wday],"! ", $mday,".",$mon,".",1900+$year," ", $hour,".", $min,":",$sec,' Uhr! '; printf(" %.3f !MB! ",$groesse); print @ipuname,"! ",$adresse,"\n"; } # print @tage[$wday]," ", $mday,".",$mon,".",1900+$year," ", $hour,".",$min,":",$sec,' Uhr ',@ipuname," ",$adresse,"\n"; } } }