LINUX.ORG.RU
ФорумAdmin

Sarg - отчет за месяц


0

0

Как можно сделать отчет за месяц с помощью 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?


#!/bin/bash
#Get yesterday date
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
#Get 1 month ago date
MONTHAGO=$(date --date "1 month ago" +%d/%m/%Y)
/usr/bin/sarg -o /var/www/monthly -l /var/log/squid/access.log.5.gz \
-f /etc/sarg/sarg.conf.monthly \
-l /var/log/squid/access.log.4.gz -l /var/log/squid/access.log.3.gz -l /var/log/squid/access.log.2.gz \
-l /var/log/squid/access.log.1.gz -l /var/log/squid/access.log -d $MONTHAGO-$YESTERDAY > /dev/null 2>&1
 

ansky ★★★★★
()
Ответ на: комментарий от ansky

Я полагаю у вас в access.log храняться недельные логи? А какое значение lastlog у вас в sarg.conf.monthly?

А у меня только за день. В этом случае мне придется тридцать раз добавлять -l /var/log/squid/access.log.1.gz.

А мне хочется более универсальности. Можно как-нибудь сделать так, чтобы access.log хранились данные за месяц, а в начале месяца они обнулялись?

idw
() автор топика
Ответ на: комментарий от idw

1. Запретить logrotate делать ротацию логов сквида
2. Раз в месяц (напр., 1 числа каждого месяца) кроном делать squid -k rotate
3. После этого напускать sarg на access.log.0 (или как там его?).

anonymous
()
Ответ на: комментарий от idw

lastlog=1 Это количество хранимых отчетов сарга, то есть выходные данные, а не входные. У меня хранится отчет только за последний полный месяц, и когда сарг генерит новый отчет, он сам удаляет предыдущий.

То, что вам нужно, к саргу отношения судя по всему не имеет, а как вам сказали, имеет отношение к logrotate.

ansky ★★★★★
()
Ответ на: комментарий от idw

За то время, пока ты спрашиваешь, уже мог бы все маны проштудировать.
# cat /etc/logrotate.d/squid
/var/log/squid/access.log {
    weekly
    rotate 5
    copytruncate
    compress
    notifempty
    missingok
}

ansky ★★★★★
()
Ответ на: комментарий от idw

Все зависит от конкретного дистра.
В одних можно закомментировать строки, относящиеся к сквиду в /etc/logfiles,
в других - удалить файлик /etc/logrotate.d/squid и т.д.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.