Страница 1 из 1
Один lightsquid и два squid`а
Добавлено: 2009-01-27 15:20:40
EugeneSG
Может кто-то уже дала такое?
Смысл следующий: есть два офиса центральный и филиал, везде стоит squid нужно что бы статистика была по обоим офисам в одном месте.
Пробовал делать так:
1. Копируем файл лога филиала и с помощью "cat >>" сливаем с логом центрального офиса, потом отдаем полученное lightsquid. Получаем следующее: показывается статистика только центрального офиса, но в папке отчета есть файлы юзеров филиала.
2. Пробовал по очереди отдавать файлы lightsuiqd`у получаем статистику только последнего файла.
Вот собственно и вопрос, как сделать что бы статистика была двух squid`ов?
Re: Один lightsquid и два squid`а
Добавлено: 2009-01-27 15:38:54
Sla
а в параметрах запуска попробовать указать другой access.log?
#usage: lightparse.pl {param}
#if param omit - parse full access.log file
# today - only current day
# yesterday - yesterday
# data in format YYYYMMDD - parse day
# access.log.{\d}.{gz|bz2} - parse file (for process archived)
Re: Один lightsquid и два squid`а
Добавлено: 2009-01-27 16:21:47
EugeneSG
Sla писал(а):а в параметрах запуска попробовать указать другой access.log?
дык пробовал уже, смотри пункт 2.
Re: Один lightsquid и два squid`а
Добавлено: 2009-01-27 16:37:41
esl
Попробуйте отстортировать слитый файл ПЕРЕД lightparser

Re: Один lightsquid и два squid`а
Добавлено: 2009-01-28 0:13:42
EugeneSG
esl писал(а):Попробуйте отстортировать слитый файл ПЕРЕД lightparser

И как я сам не догодался... работает! С меня

Re: Один lightsquid и два squid`а
Добавлено: 2009-01-28 12:39:48
esl
EugeneSG писал(а):esl писал(а):Попробуйте отстортировать слитый файл ПЕРЕД lightparser

И как я сам не догодался... работает! С меня

Будеш в Харькове - угостиш
Поделись пожалуйста временем сортировки

размеры файлов/время сортировки, просто интенесно узнать
и еще, если в обоих логах будут одинаковые юзера, они будут считаться как один, имейте в виду
и написал тут скриптик для более умного? слияния ....
можно потестировать ...
имена что сливать в @flist
вывод на stdout ....
Код: Выделить всё
#!/usr/bin/perl
#
# LightSquid Project (c) 2004-2009 Sergey Erokhin aka ESL
# MultiLogMerger
@flist=qw(b1.log b2.log b3.log b4.log b5.log b6.log b7.log);
$MAX_INT=99999999999;
$filenum=$#flist+1;
$i=0;
foreach $name (@flist) {local *FILE;open FILE,"<","$name" or die "can't open file $name\n";$fHandle[$i++]=*FILE;}
for ($i=0;$i<$filenum;$i++) {UpdateFile($i);}
$run=1;
while ($run) {
$run=0;$mint=$MAX_INT-1;$mini=-1;
for ($i=0;$i<$filenum;$i++) { if ($T[$i]<$mint) {$mint=$T[$i];$mini=$i;}}
if ($mini != -1) {print $L[$mini];UpdateFile($mini);$run=1;}
}
for ($i=0;$i<$filenum;$i++) {close $fHandle[$i];}
sub UpdateFile($) {
my $i=shift;$file=$fHandle[$i];
unless (eof($file)) {$tmp=<$file>;$L[$i]=$tmp;($time,@rest)=split /\s/,$tmp;$T[$i]=$time;return 1;}
else {$T[$i]=$MAX_INT;return 0;}
}