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