#!/usr/bin/perl # # striplog2.pl # 2001-02-03 Vragen&opmerkingen naar: pinball@cheerful.com # Lees striplog2.txt voor info. $path = "/home/dnet/proxyper/"; # 1: projecten #$rc5 = 1; <-- wel RC5 #$rc5 = 0; <-- geen RC5 $rc5 = 0; $r72 = 1; $ogr = 1; # 2: maak deze gelijk aan wat achter: # 'logfilekeyblock=' # staat in je proxyper.ini (kijk bij [RC5] en [OGR] in je proxyper.ini) $rc5log = $path."pproxyrc5"; $r72log = $path."pproxyr72"; $ogrlog = $path."pproxyogr"; # 3: oude logs: (vul aantal dagen in, bv logs van 1 jaar: $oudelogs = 365); # Bij 'normale' werking moet hier een 0 staan, alleen veranderen om oude logs te doen. $oudelogs = 1; # 4 # Zie hieronder, bij: "Vul hieronder zelf de ip-ranges aan.", # Vergeet niet je rc5-dns.cache (en eventueel ogr-dns.cache) aan te passen. # Klaar! ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = nice_time(time); if (!$isdst) { $uurcorr = 3600; } else { $uurcorr = 7200; } #deze alleen veranderen als je weet wat je aan het doen bent :-) $rc5small = $path."out/pproxyrc5"; $r72small = $path."out/pproxyr72"; $ogrsmall = $path."out/pproxyogr"; for ($dagen = 0; $dagen <= $oudelogs; $dagen++) { ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = nice_time(time-$uurcorr-($dagen * 86400)); $curdate = "$year$mon$mday"; if ($rc5) { $biglog = $rc5log . $curdate . ".log"; $smallog = $rc5small . $curdate . ".log"; if (!-e $smallog && !$oudelogs) { $oudelogs = 1; } proclog($biglog, $smallog); } if ($r72) { $biglog = $r72log . $curdate . ".log"; $smallog = $r72small . $curdate . ".log"; if (!-e $smallog && !$oudelogs) { $oudelogs = 1; } proclog($biglog, $smallog); } if ($ogr) { $biglog = $ogrlog . $curdate . ".log"; $smallog = $ogrsmall . $curdate . ".log"; if (!-e $smallog && !$oudelogs) { $oudelogs = 1; } proclog($biglog, $smallog); } } sub proclog { undef %full; undef %final; my($voor, $na) = @_; open (LEES, '<'."$voor") or print "Kan de proxylogs niet lezen: $voor\n"; while (defined($entry = )) { chomp($entry); $entry =~ tr/A-Z/a-z/; ($datetime, $ipaddr, $email, $block, $nkeys, $os, $cpu, $ver, $space) = split(/,/, $entry); # ***************************************************************** # Vul hieronder zelf de ip-ranges aan. # bijv: 195.121.x.x (WXS) wordt vervangen door 10.1.1.3 # # in de rc5-dns.cache vul ik in: # 10.1.1.3,NAAM_VAN_DE_GOZERT_DIE_WXS_GERUIKT,2001/02/01 # 10.1.1.4,NAAM_VAN_DE_GOZERT_DIE_WANNADOO_GERUIKT,2001/02/01 # # Voorbeelden: #$ipaddr =~ s/^195\.240\.10\.28/10.1.1.6/; alleen 195.240.10.28 #$ipaddr =~ s/^195\.240\.10\..+/10.1.1.5/; alles wat begint met 195.240.10 #$ipaddr =~ s/^194\.109\..+/10.1.1.4/; alles wat begint met 194.109 #$ipaddr =~ s/^213\..+/10.1.1.3/; alles wat begint met 213 $main="$email,$ipaddr,$os,$cpu,$ver"; if (defined($full{$main})) { $full{$main} += "$nkeys"; $full{$main}{$main} = "$datetime,$block"; } else { $full{$main} = "$nkeys"; $full{$main}{$main} = "$datetime,$block"; } } close LEES; if (defined(%full)) { foreach $main (keys %full) { ($email, $ipaddr, $os, $cpu, $ver, $space) = split(/,/, $main); ($datetime, $block) = split(/,/, $full{$main}{$main}); $final{"$datetime,$ipaddr,$email,$block,$full{$main},$os,$cpu,$ver"} = 0; } open (SCHR, '>'."$na") or print "Kan de gecomprimeerde logs niet schrijven: $na\n"; foreach $main (sort (keys %final)) { print SCHR "$main\n"; } close SCHR; } } sub nice_time { my @utc = localtime(shift @_); my $i; $utc[4]++; $utc[5] += 1900; for ($i = 0; $i < 5; $i++) { while (length($utc[$i]) < 2) { $utc[$i] = "0" . $utc[$i]; } } return ($utc[0], $utc[1], $utc[2], $utc[3], $utc[4], $utc[5], $utc[6], $utc[7], $utc[8]); }