Может кто-то уже дала такое?
Смысл следующий: есть два офиса центральный и филиал, везде стоит squid нужно что бы статистика была по обоим офисам в одном месте.
Пробовал делать так:
1. Копируем файл лога филиала и с помощью "cat >>" сливаем с логом центрального офиса, потом отдаем полученное lightsquid. Получаем следующее: показывается статистика только центрального офиса, но в папке отчета есть файлы юзеров филиала.
2. Пробовал по очереди отдавать файлы lightsuiqd`у получаем статистику только последнего файла.
Вот собственно и вопрос, как сделать что бы статистика была двух squid`ов?
Один lightsquid и два squid`а
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- мл. сержант
- Сообщения: 73
- Зарегистрирован: 2008-08-19 15:09:19
Re: Один lightsquid и два squid`а
а в параметрах запуска попробовать указать другой 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)
-
- рядовой
- Сообщения: 21
- Зарегистрирован: 2007-09-29 21:31:34
Re: Один lightsquid и два squid`а
дык пробовал уже, смотри пункт 2.Sla писал(а):а в параметрах запуска попробовать указать другой access.log?
-
- рядовой
- Сообщения: 14
- Зарегистрирован: 2009-01-27 16:35:35
Re: Один lightsquid и два squid`а
Попробуйте отстортировать слитый файл ПЕРЕД lightparser 

-
- рядовой
- Сообщения: 21
- Зарегистрирован: 2007-09-29 21:31:34
Re: Один lightsquid и два squid`а
И как я сам не догодался... работает! С меняesl писал(а):Попробуйте отстортировать слитый файл ПЕРЕД lightparser

-
- рядовой
- Сообщения: 14
- Зарегистрирован: 2009-01-27 16:35:35
Re: Один lightsquid и два squid`а
Будеш в Харькове - угостиш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;}
}
LightSquid author.
Homesite: http://lightsquid.sf.net
Homesite: http://lightsquid.sf.net