>Мастера, подскажите плз... А то у меня на апаче два виртуальных именных
>(на одном IP) хоста - мой и друга. Надо посчитать его
>трафик и мой. Как это сделать?
Для лога каждого виртуального хоста:
#!/usr/bin/perl
$weblogs_dir="/usr/local/apache/logs";
$cur_log=$ARGV[0] || "access_log";
my %uniq_ip=();
my $traffic=0;
my $clicks=0;
my $uniqs=0;
my $docs=0;
open(LOG,"<$weblogs_dir/$cur_log")||die "$weblogs_dir/$cur_logn not found !";
flock(LOG,1);
while (<LOG>){
if (/^([\d\.]+)\s[^\s]+\s[^\s]+\s\[.+\]\s\"(.+)\"\s[\d]+\s([\d]+)/){
$traffic += $3;
$ip=$1;
$doc=$2;
$clicks++;
if ( $uniq_ip{$ip} != 1){
$uniq_ip{$ip}=1;
$uniqs++;
}
if ($doc !~ /htm|php|cgi/){
$docs++;
}
}
}
close(LOG);
print "Трафик: $traffic\n";
print "Запросов: $clicks\n";
print "Уникальных IP: $uniqs\n";
print "Документов: $docs\n";