Как можно сделать отчет за месяц с помощью Sarg 2.1Я запускаю скрипт sarg.monthly:
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
MONTHAGO=$(date --date "1 month ago" +%d/%m/%Y)
/usr/sbin/sarg -o /var/www/html/squid/monthly -d $MONTHAGO-$YESTERDAY
/usr/sbin/squid -k rotate
exit 0Но он не формирует отчет. Я думаю это из-за того что обрабатывется файл access.log в котором данные уже за следующий месяц. А как сделать так, чтобы сарг обрабатывал и эти файлы access.log.0.gz, access.log.1.gz, ....
Полагаю, что надо копать здесь logfile_rotate у сквида и lastlog у сарга. Но какие значения здесь ставить и когда запускать скрипт sarg.monthly? У меня сейчас в сквиде закоментирована строчка с logfile_rotate, а lastlog=0.
>Как можно сделать отчет за месяц с помощью Sarg 2.1sarg -d 01/04/2006-30/04/2006
>
>Я запускаю скрипт sarg.monthly:
>
>YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
>MONTHAGO=$(date --date "1 month ago" +%d/%m/%Y)
>/usr/sbin/sarg -o /var/www/html/squid/monthly -d $MONTHAGO-$YESTERDAY
>/usr/sbin/squid -k rotate
>exit 0
>
>Но он не формирует отчет. Я думаю это из-за того что обрабатывется
>файл access.log в котором данные уже за следующий месяц. А как
>сделать так, чтобы сарг обрабатывал и эти файлы access.log.0.gz, access.log.1.gz, ....
>
>
>Полагаю, что надо копать здесь logfile_rotate у сквида и lastlog у сарга.
>Но какие значения здесь ставить и когда запускать скрипт sarg.monthly? У
>меня сейчас в сквиде закоментирована строчка с logfile_rotate, а lastlog=0.
>sarg -d 01/04/2006-30/04/2006Эта команда не формирует отчет, так как в access.log храняться данные только за день.
Посмотри этот скрипт: http://termex-2.tsk.ru/sarg/sarg-reportsЯ его использую для построения отчетов.
Запускается кроном:
0 0 * * * root /usr/local/etc/sarg-scripts/sarg-reports daily
15 0 * * 1 root /usr/local/etc/sarg-scripts/sarg-reports weekly
20 1 1 * * root /usr/local/etc/sarg-scripts/sarg-reports monthlyТакже можно этот скрипт вызывать ежечасно для построения отчета о текущей активности.
Конфигурация директорий (откуда что брать, что запускать, куда класть отчет) осуществляется в скрипте, при его беглом просмотре быстро найдете что и как.
В этом скрипте также происходит и указание сквиду ротировать лог, тоесть отдельно это делать не надо.
К недостаткам скрипта можно отнести то, что возможна потеря информации если запускать скрипт позже момента перехода между днями (тоесть не в 00:00:00) или в этот момент будет активность на прокси. В этом случае информация нового месяца может попасть в файл прошлого месяца и соответственно некорректно отобразиться в отчете.
Мне кажется, что эту проблему надо решать методом отправки лога сквида в pipe, иначе никак, поскольку сквид всеравно не сделает моментальную ротацию лога, а даже одна строчка может оказаться критичной.
В моем случае это не критично, по ночам в офисе никого не бывает )
>Посмотри этот скрипт: http://termex-2.tsk.ru/sarg/sarg-reports
>
Спасибо попробую.