Для производственных нужд был настроен Proxy-сервер на базе Debian 6.
Была организована следующая связка: Debian + Squid3 + SARG.
Все было настроено, все работало. Однако спустя неделю я заметил, что SARG не обрабатывает старые логи. Точнее логи были, ибо в logrotate для Squid3 было прописано хранить 365 логов (за 1 год), но генератор отчетов sarg-reports, не обрабатывал их, а работал только с текущим access.log.
После длительных мытарств и поисков в Интернете информации, что-либо похожее я не нашел.
Изучив man по SARG, команды запуска я выяснил, что SARG сам по себе умеет обрабатывать несколько логов, но их нужно прописывать вручную, в результате модифицировал скрипт sarg-reports.
Модификации подверглись функции today (), manual (), monthly (), daily (), weekly ().
Стандартная строка вызова SARG была заменена на следующие 2 строки (на примере в функции manual ())
cd /var/log/squid3 $SARG -f $CONFIG -l /var/log/squid3/`ls /var/log/squid3/ | grep access` -d day-1 -o $DAILYOUT >$ERRORS 2>&1
Было так:
$SARG -f $CONFIG -d day-1 -o $DAILYOUT >$ERRORS 2>&1
Чтобы было понятней опишу подробней.
manual () { DAILYOUT=$HTMLOUT/$DAILY mkdir -p $DAILYOUT create_index_html if [ -z "$MANUALDATE" ] then echo "No date given, please specify a valid date (DD/MM/YYYY)" else cd /var/log/squid3 $SARG -l /var/log/squid3/`ls /var/log/squid3 | grep access` -f $CONFIG -d $MANUALDATE -o $DAILYOUT fi } today () { DAILYOUT=$HTMLOUT/$DAILY mkdir -p $DAILYOUT create_index_html cd /var/log/squid3 $SARG -f $CONFIG -l /var/log/squid3/`ls /var/log/squid3 | grep access` -d $TODAY -o $DAILYOUT >$ERRORS 2>&1 exclude_from_log } daily () { DAILYOUT=$HTMLOUT/$DAILY mkdir -p $DAILYOUT create_index_html cd /var/log/squid3 $SARG -f $CONFIG -l /var/log/squid3/`ls /var/log/squid3/ | grep access` -d day-1 -o $DAILYOUT >$ERRORS 2>&1 exclude_from_log } weekly () { WEEKLYOUT=$HTMLOUT/$WEEKLY mkdir -p $WEEKLYOUT create_index_html cd /var/log/squid3 $SARG -f $CONFIG -l /var/log/squid3/`ls /var/log/squid3/ | grep access` -d week-1 -o $WEEKLYOUT >$ERRORS 2>&1 exclude_from_log } monthly () { MONTHLYOUT=$HTMLOUT/$MONTHLY mkdir -p $MONTHLYOUT create_index_html cd /var/log/squid3 $SARG -f $CONFIG -d month-1 -o $MONTHLYOUT -l /var/log/squid3/`ls /var/log/squid3/ | grep access` >$ERRORS 2>&1 exclude_from_log }