old-www/LDP/LGNET/bin/log1

37 lines
1.0 KiB
Perl
Executable File

#!/usr/bin/perl -w
# Created by Ben Okopnik on Tue Dec 13 16:19:37 CST 2005
# Demonstrates log parsing and display - basic
die "Usage: ", $0 =~ /([^\/]+)$/, " <server_log_file>\n" unless @ARGV;
# Apache's Combined Log Format (Common Log Format plus 'referer' and 'UA'):
# IP|identd|user|[dy/mon/year:hh:mm:ss zone]|"request"|status|size|"referer"|"UA_string"
# @fields = qw/ip ident user date request status size referer ua/;
# 0: 80.237.184.66
# 1: -
# 2: -
# 3: [13/Jan/2007:11:38:05 -0800]
# 4: GET /authors/youngman.html HTTP/1.0
# 5: 200
# 6: 3979
# 7: -
# 8: WWWeasel Robot v1.00 (http://wwweasel.de)
while ( <> ){
@line = /^(\S+) (\S+) (\S+) (\[[^\]]+\]) "([^"]+)" (\d+) (\d+) "([^"]+)" "([^"]+)"/;
next unless $line[ 5 ] && $line[ 5 ] == 200;
if ( $line[ 4 ] =~ / (.*html) / ){
$files{substr $line[3], 1, 11}{$1}++;
}
}
for $date ( sort keys %files ){
print "$date:\n";
for (sort { $files{$date}{$b} <=> $files{$date}{$a} } keys %{$files{$date}}){
print "\t$_: $files{$date}{$_}\n" if $files{$date}{$_} >= 10;
}
}