Мини парсер логов.

McGrath

Moderator
Messages
1,007
Reputation
135
Reaction score
188
Points
63
Code:
#/usr/bin/perl
my $dir = "logs";
my $key = "https://url.com/login.do";
$output = "report.txt";

opendir DIR, $dir or die "Can't open directory $dir: $!\n";
foreach(grep !/^\./ && -f "$dir/$_", readdir(DIR))
{
        open FILE, $dir.'/'.$_ or die "Couldn't open file: $!"; 
        $s = join("", <FILE>); 
        close FILE;
        
        while($s =~ /([=]{40}.*?[=]{40})/smg)
        {
      $try = $1;
                if($try =~ $key)
                {
                        #print $try;
                        open(usr,'>>'.$output);
                        print usr ($try."\n\n");
                        close(usr);
                }
        }
}
Работает медленно. Писал для единичного пользования.

my $dir = "logs"; - папка, в которой лежат сами логи. Например на диске есть parser.pl и папка logs, внутри которой лежат тоги.

my $key = "https://url.com/login.do"; - значение по которому будем искать, не обязательно ссылка, можно искать и по "ftp://"

$output = "report.txt"; - название файла отчета, который будет содержать упоминания об my $key значении
 

makaka

Professional
Messages
1,952
Reputation
236
Reaction score
325
Points
83
Опробовано и активно используется :)

---------- Сообщение добавлено в 12:29 AM ---------- Предыдущее сообщение размещено в 12:29 AM ----------

Кстати, есть еще софт PowerGrep, погуглите кому нужно.
 
Top