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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Gennady Terehov                      2:5020/400     22 Apr 2003  15:43:04
 To : All
 Subject : таблица по результатам обработки 2-ух log-файлов
 -------------------------------------------------------------------------------- 
 
 Здравствуйте, ВСЕ!
 Имеется uucp-шный лог, из которого я сначала выделяю строки вида:
 uux pcpes root (2003-04-16 03:40:05.04 15919) Queuing roscill G2HDFDO8.DO
 (D.00YK)
 uucico pcpes root (2003-04-16 03:43:30.55 15896) Sending roscill G2HDFDO8.DO
 (D.00YK) (337690 bytes)
 (длинные строки мой ньюсридер перенес на новую строку),
 затем из них генерю html-страничку, где они сортируются по времени с помощью
 скрипта (кусок):
 .....
 $uucpLog1 = "</var/log/uucp/Log.1";
 $uucpLog = "</var/log/uucp/Log";
 @uucpLogs = ($uucpLog1, $uucpLog);
 $uuhost = 'pcpes';
 $uuscript = 'roscill';
 $queued = "Поставлено в очередь ";
 $sent = "Послано ";
 print << "_HDR_";
 Content-type: text/html; charset='koi8-r'
 
 (здесь идет обычный заголовок html-документа)
 
 foreach $LogFile (@uucpLogs){
   open(LogFile);
   while(<LogFile>){
     next if /^uuxqt/;
     chomp;
     my @uufields = split;
     next unless $uufields[6] =~ /^(Que|Send)/;
     next unless $uufields[1] =~ /$uuhost/ && $uufields[7] =~ /$uuscript/;
     $tmpDt = substr($uufields[3],1,10);
     $tmpTm = substr($uufields[4],0,8);
     $Key = $tmpDt." ".$uufields[4];
     if($uufields[6] =~ /Queuing/)
      {
       $Hash{$Key} = "<tr><td bgcolor=\"#e1ffff\"><pre>$queued<strong><font
 color=\"#0000A0\">$uufields[8]</font></strong>  ".$tmpDt." 
 <b>".$tmpTm."</b></td></tr>\n";
      }
       elsif($uufields[6] =~ /Sending/)
      {
       $Hash{$Key} = "<tr><td bgcolor=\"#ffffe1\"><pre>$sent<strong><font
 color=\"#800040\">$uufields[8]</font></strong>  ".$tmpDt."  <b>".$tmpTm."</b> 
 ".$uufields[10]." байт)</td></tr>\n";
      }
   }
   close(LogFile);
 }
 
 foreach $Key ( reverse sort (keys %Hash) ){ print $Hash{$Key} }
 
 print  << "_FTR_";
 </TABLE></CENTER>
 </BODY>
 </HTML>
 _FTR_
  
 В результате генерится html-таблица, в которой последовательно идут строки
 Послано G2HDFDO8.DO  2003-04-16  03:43:30  (337690 байт)
 Поставлено в очередь G2HDFDO8.DO  2003-04-16  03:40:05
 
 Это все работает, но:
 Теперь добавляется 2-ой лог, в который пишется (procmail'ом и др. скриптом)
 приход подтверждений о получении этих файлов, вида
 G2HDFDO8.DO (имя отправленного файла) ну и дальше там дата получения этого
 самого подтверждения. И вот в чем проблема-то:
 надо анализировать еще и этот 2-й лог и по результатам его анализа добавлять
 в html-ную табличку еще и 3-ю строку, что-то типа:
 Получено потверждение G2HDFDO8.DO  2003-04-16  03:55:07
 и не куда попало в конец, а после строчек "поставлено в очередь" и
 "послано" соответствующего G2HDFDO8.DO .
 Причем этих  файлов (на кот.  потом приходят подтверждения  получения) может
 генериться и отправляться  (третьим скриптом) произвольное количество (может
 и  вообще  ни  одного  не  быть).  Отсюда  вопрос:  как  мне  модифицировать
 вышеприведенный  скрипт/написать новый  чтобы  это сделать?  В сторону  чего
 посмотреть хотя бы?
 Заранее спасибо.
 -- 
 Геннадий
 Booting... /vmemacs.el
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 таблица по результатам обработки 2-ух log-файлов   Gennady Terehov   22 Apr 2003 15:43:04 
 Re: таблица по результатам обработки 2-ух log-файлов   Gennady Terehov   23 Apr 2003 09:52:00 
 Re: таблица по результатам обработки 2-ух log-файлов   Sergey Leschenko   23 Apr 2003 11:14:10 
 таблица по результатам обработки 2-ух log-файлов   Renat Araslanow   23 Apr 2003 13:52:48 
 Re: таблица по результатам обработки 2-ух log-файлов   Gennady Terehov   24 Apr 2003 01:17:09 
Архивное /ru.perl/10434a8cde47f.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional