|
|
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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/10434a8cde47f.html, оценка из 5, голосов 10
|