linux-l: squid Ausgabe lesbarer gestalten aber wie?

phR phr at bln.de
Mi Mai 20 22:44:46 CEST 1998


Michael.Feldbinder at bo.dlr.de wrote:
> 
> Hallo LX - Gemeinde!
> 
> Meine Frage ist, wie kann ich die squid Ausgabe lesbarer gestalten. Am Ende
> soll User-Name "Leerzeichen" URL ausgegeben werden.
> Also etwa von
> 
>      129.247.124.128 - - [12/May/1998:15:34:02 +0200] "GET
> http://www.dino-online.de/pic/9a_468x60.gif" TCP_MISS 176
> 
> nach
> 
>      Feldbinder, Michael http://www.dino-online.de/pic/9a_468x60.gif

Hier noch ein Perl-Skript, das genau das erledigt, was du willst:

$NAMENSDATEI muss natuerlich den Namen/Pfad der richtigen Namensdatei
enthalten.
Den Perl-Interpreter musst du evtl. auch anpassen.
Die Squid-Log-Datei muss durch STDIN kommen, wie zum Beispiel durch 
	tail logdatei -f | squidlesbar.pl
Bei unbekannten IP-Adressen wird die Adresse ausgegeben, sonst der Name,
der in der Namensdatei gespeichert ist.

#!/usr/bin/perl

$NAMENSDATEI="namen.dat";

open (nd, $NAMENSDATEI) or die "could not open \"$NAMENSDATEI\": $!\n";

for $nd (<nd>) {
    ($ip, $n)=split(/cc\s*/, $nd);
    $n{$ip}=$n;
}

while ($l=<STDIN>) {
    if
($l=~/(\d{1,3}\.\d{1,3}\.\d{1,3}\.)(\d{1,3})[^\"]*\"([^\"^\s]+)\s+([^\"]+)\"/)
{
	$pn=$n{"0".$2} or $pn="$1$2";
	print "$pn\t$4\n";
    }
}

Ich hoffe, es hilft. Keine Garantie usw....

phr
-- 
foreach$j(split/\ /,"Just_ ano ther_ Perl_ Hac
ker\n"){do{$n="";foreach$c(@c=
split//,$j){$n.=$c[rand($#c+1)];}}until(crypt($j,"ph")eq
crypt($n,"ph"));$n=~
s/\_/ /g;print$n;}# The three great virtues of a programmer are
Laziness, ###
# Impatience, and Hubris (Larry Wall, Creator of Perl)
######################




Mehr Informationen über die Mailingliste linux-l