Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Serge Cherpatyuk                     2:4625/44.41   14 Aug 2000  19:32:34
 To : All
 Subject : algorithm
 -------------------------------------------------------------------------------- 
 
 
 Отступление: сисадму - "сисадмячья" смерть ;), т.е. девелопер
              из меня никакой ;(
 
 Задача: написать обработчик апачевского лог-файла
 
 Чего сделано: выдаёт к камому файлу сколько раз обращались
 Хотелось бы: что бы выдавало - к "этому" файлу обращались
              "столько-то" раз "такого-то" числа.
              Вот тут-то я и прошу подсказать алгоритм.
 
 Код "чего сделано":
 
 ==================================================
 #!/usr/bin/perl
 
 use strict;
 
 my @LogFiles = 
  ( 
   "/home/gray/work/perl/sites/log_obr/access_log",
  );
 
 my
  (
   $LogFile,
   $i,
  );
 
 #main
 # {
    for($i = 0; $i <= $#LogFiles; $i++)
     {
      $LogFile = $LogFiles[$i];
      &DoLog;
     }
 
 # }
 
 sub DoLog
  {
   my
    (
     $IP, $un1, $un2, $w_date, $s_gmt, $method, $r_file, 
     $protocol, $code1, $code2,
     @date_time, $date, $time,
     %Urls,
    );
 
   undef( %Urls );
 
   return 1 if( ! -r $LogFile);
   if( !open( flog, $LogFile))
    {
     print "Cannot open $LogFile: $!\n";
     return 0;
    }
 
   while( <flog> )
    {
     chop;
     ( $IP, $un1, $un2, $w_date, $s_gmt, $method, $r_file, $protocol,\
       $code1, $code2 ) = split( /[ ]+/,$_,10);
     @date_time = split( /:/,$w_date, 2);
     ($date = $date_time[0]) =~ s/^\[//;
     $time  = $date_time[1];
     $method =~ s/^\"//; 
     $protocol =~ s/\"$//;
     if ( !defined( $Urls{$r_file} ))
      {
       $Urls{$r_file} = 0;
      }
     $Urls{$r_file}++;
 
   }
 
   while( (my $file, my $count) = each( %Urls ))
    {
     print "The file $file was requested $count times.\n";
    }
  }
 ===============================================================
 
 Gray.
 --- ifmail v.2.14.KSI2
  * Origin: VIASoft, Ltd. (2:4625/44.41@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 algorithm   Serge Cherpatyuk   14 Aug 2000 19:32:34 
 algorithm   Sanyo Titaev   17 Aug 2000 14:52:32 
 Re: algorithm   Serge Cherpatyuk   22 Aug 2000 14:26:44 
Архивное /ru.perl/10400bbf11df7.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional