The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Sarg+Squid = отчет и дата отчетов!"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Настройка Squid и других прокси серверов (Public)
Изначальное сообщение [Проследить за развитием треда]

"Sarg+Squid = отчет и дата отчетов!"
Сообщение от Lotos20 emailИскать по авторуВ закладки(ok) on 28-Окт-04, 15:44  (MSK)
Есть проблема. Стоит сквида 2.5, все работает нормально, пользователи лезут в инет через авторизацию. Нужно посчитать трафик сколько скачено каждым пользователем, и желательно сделать чтобы отсылалось на мыло. Я установил сарг, настроил его, но вот появилась проблема, как мне заставить сарг чтобы присылал отчет за сутки только определенного пользователя? Я так понимаю мне надо постоянно теперь ручками прописывать дату :-( ведь геморойно... как заставить сарг чтобы генерил отчет за сутки или же генерил по времени? попробовал сделать так:

sarg -d 22/10/2004-22/10/2004 -e pisya@kamushkin.ru -u pisya - Я так понимаю мне только ручками светит делать енто? или же есть вариант чтобы как-то подставлять дату или вреся? кто с этим сталкивался помогите с вопросом.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от Аскет Искать по авторуВ закладки on 28-Окт-04, 20:23  (MSK)
>Есть проблема. Стоит сквида 2.5, все работает нормально, пользователи лезут в инет
>через авторизацию. Нужно посчитать трафик сколько скачено каждым пользователем, и желательно
>сделать чтобы отсылалось на мыло. Я установил сарг, настроил его, но
>вот появилась проблема, как мне заставить сарг чтобы присылал отчет за
>сутки только определенного пользователя? Я так понимаю мне надо постоянно теперь
>ручками прописывать дату :-( ведь геморойно... как заставить сарг чтобы генерил
>отчет за сутки или же генерил по времени? попробовал сделать так:
>
>
>sarg -d 22/10/2004-22/10/2004 -e pisya@kamushkin.ru -u pisya - Я так понимаю мне
>только ручками светит делать енто? или же есть вариант чтобы как-то
>подставлять дату или вреся? кто с этим сталкивался помогите с вопросом.
>

А если поставить на Cron?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от zabudkin emailИскать по авторуВ закладки(??) on 24-Ноя-04, 08:30  (MSK)
Если через Cron, то может возникнуть проблема связанная с тем, что за минуту генерации можент кто-то полезть в инет.
Для избежания данной проблемы:
#!/bin/sh
dat=`date +%d/%m/%Y`
dats="$dat-$dat"
/usr/bin/sarg -d $dats
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от Name Искать по авторуВ закладки on 26-Ноя-04, 11:53  (MSK)
>Если через Cron, то может возникнуть проблема связанная с тем, что за
>минуту генерации можент кто-то полезть в инет.
>Для избежания данной проблемы:
>#!/bin/sh
>dat=`date +%d/%m/%Y`
>dats="$dat-$dat"
>/usr/bin/sarg -d $dats


А как заставить запускаться этот скрипт в последний день месяца, ночью?
Ведь в каждом месяце разное количество дней. Чтобы считать трафик squid-а за месяц.

#!/bin/sh
/bin/cat /var/log/squid/access.log > /tmp/access.log.tmp
/bin/zcat /var/log/squid/access.log.1.gz >> /tmp/access.log.tmp
/bin/zcat /var/log/squid/access.log.2.gz >> /tmp/access.log.tmp
/bin/zcat /var/log/squid/access.log.3.gz >> /tmp/access.log.tmp
/bin/zcat /var/log/squid/access.log.4.gz >> /tmp/access.log.tmp
/bin/zcat /var/log/squid/access.log.5.gz >> /tmp/access.log.tmp
dat1=`date +01/%m/%Y`
dat2=`date +%d/%m/%Y`
dats="$dat1-$dat2"
/usr/bin/sarg -l /tmp/access.log.tmp -d $dats && /bin/rm -f /tmp/access.log.tmp

И запускать этот скрипт за 15 минут до полуночи последнего дня месяца.
Но как указать, чтобы он именно в поседний день стартовал, не просто такого-то числа. Потому что то 30 дней в месяце, то 31, то 29, то 28.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от zabudkin emailИскать по авторуВ закладки(??) on 26-Ноя-04, 12:00  (MSK)
>А как заставить запускаться этот скрипт в последний день месяца, ночью?
>Ведь в каждом месяце разное количество дней. Чтобы считать трафик squid-а за
>месяц.
Скрипт нужно запускать в 23 часа 59 минут, дабы в момент запуска скрипта команда date выдала нужную нам дату.

Статистика за месяц:
#!/bin/sh
dat=`date +/%m/%Y`
dats="01$dat-31$dat"
/usr/bin/sarg -d $dats

Статистика с 1 по 15 число каждого месяца:
#!/bin/sh
dat=`date +/%m/%Y`
dats="01$dat-15$dat"
/usr/bin/sarg -d $dats

Статистика за день (скажем из недельного, месячного лога):
#!/bin/sh
dat=`date +%d/%m/%Y`
dats="$dat-$dat"
/usr/bin/sarg -d $dats

>И запускать этот скрипт за 15 минут до полуночи последнего дня месяца.
>Но как указать, чтобы он именно в поседний день стартовал, не просто
>такого-то числа. Потому что то 30 дней в месяце, то 31,
>то 29, то 28.
Просто запускайте в 23 часа 59 минут (см. выше).
Вот мой /etc/crontab:

59 * * * * root nice -n 19 run-parts /etc/cron.hourly
59 23 * * * root nice -n 19 run-parts /etc/cron.daily
59 23 * * 0 root nice -n 19 run-parts /etc/cron.weekly
59 23 1 * * root nice -n 19 run-parts /etc/cron.monthly

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от Name Искать по авторуВ закладки on 26-Ноя-04, 13:03  (MSK)
>Просто запускайте в 23 часа 59 минут (см. выше).
>Вот мой /etc/crontab:
>
>59 * * * * root nice -n 19 run-parts /etc/cron.hourly
>59 23 * * * root nice -n 19 run-parts /etc/cron.daily
>59 23 * * 0 root nice -n 19 run-parts /etc/cron.weekly
>59 23 1 * * root nice -n 19 run-parts /etc/cron.monthly

Спасибо.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от Name Искать по авторуВ закладки on 26-Ноя-04, 13:21  (MSK)
>Скрипт нужно запускать в 23 часа 59 минут, дабы в момент запуска
>скрипта команда date выдала нужную нам дату.

Так как же в ПОСЛЕДНИЙ день месяца запустить?
Что в 23:59 - это понятно.

>>И запускать этот скрипт за 15 минут до полуночи последнего дня месяца.
>>Но как указать, чтобы он именно в поседний день стартовал, не просто
>>такого-то числа. Потому что то 30 дней в месяце, то 31,
>>то 29, то 28.
>Просто запускайте в 23 часа 59 минут (см. выше).
>Вот мой /etc/crontab:
>

>59 23 1 * * root nice -n 19 run-parts /etc/cron.monthly

Это запуск ПЕРВОГО числа каждого месяца.
А мне нужно ПОСЛЕДНЕГО.
Иначе

#!/bin/sh
dat=`date +/%m/%Y`
dats="01$dat-31$dat"
/usr/bin/sarg -d $dats

Даст неверное значение.
Всё-таки как?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от zabudkin emailИскать по авторуВ закладки(??) on 26-Ноя-04, 13:31  (MSK)
>Так как же в ПОСЛЕДНИЙ день месяца запустить?
>Что в 23:59 - это понятно.
>Это запуск ПЕРВОГО числа каждого месяца.
>А мне нужно ПОСЛЕДНЕГО.
>Всё-таки как?
Запускайте каждый день и всё, всё равно же это будет происходить ночью.
У меня логи ротатятся каждый месяц. Размер access.log почти полутора гигов, и работают два скрипта:
в /etc/cron.hourly:
#!/bin/sh
dat=`date +%d/%m/%Y`
dats="$dat-$dat"
/usr/bin/sarg -d $dats

в /etc/cron.daily:
dat1=`date +01/%m/%Y`
dat2=`date +%d/%m/%Y`
dats="$dat1-$dat2"
/usr/bin/sarg -d $dats

Crontab:
59 * * * * root nice -n 19 run-parts /etc/cron.hourly
59 23 * * * root nice -n 19 run-parts /etc/cron.daily

Для системы практически не заметно и это на логе почти 1.5 Гига, система P-III, 700 Мгц.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от zabudkin emailИскать по авторуВ закладки(??) on 26-Ноя-04, 13:37  (MSK)
В /etc/cron.dayly у меня это скрипт:
#!/bin/sh
dat=`date +/%m/%Y`
dats="01$dat-31$dat"
/usr/bin/sarg -d $dats

Если использовать Ваш, то он будет создавать каждый раз папки на текущий день.
А вот как узнать сколько дней в данном месяце я даже не знаю :(
А так хоть будут папки 2004/11/01-2004/11/01
хоть и 30 дней в ноябре.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от zabudkin emailИскать по авторуВ закладки(??) on 26-Ноя-04, 13:48  (MSK)
П Р И Д У М А Л ! ! ! :)))
#!/bin/sh
datm=`date +%m/%Y`
datm2=`date +%m`
daysinmonth=( 31 28 31 30 31 30 31 31 30 31 30 31)
dats="01/$datm-${daysinmonth[$datm2-1]}/$datm"
/usr/bin/sarg -d $dats

Теперь всё ок :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от Name Искать по авторуВ закладки on 26-Ноя-04, 15:20  (MSK)
>П Р И Д У М А Л ! ! ! :)))
>
>#!/bin/sh
>datm=`date +%m/%Y`
>datm2=`date +%m`
>daysinmonth=( 31 28 31 30 31 30 31 31 30 31 30
>31)
>dats="01/$datm-${daysinmonth[$datm2-1]}/$datm"
>/usr/bin/sarg -d $dats
>
>Теперь всё ок :)

Почти :)
А если в феврале 29 дней? :)
Хотя ход ваших мыслей мне нравится :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от Name Искать по авторуВ закладки on 26-Ноя-04, 15:35  (MSK)
>П Р И Д У М А Л ! ! ! :)))
>
>#!/bin/sh
>datm=`date +%m/%Y`
>datm2=`date +%m`
>daysinmonth=( 31 28 31 30 31 30 31 31 30 31 30
>31)
>dats="01/$datm-${daysinmonth[$datm2-1]}/$datm"
>/usr/bin/sarg -d $dats
>
>Теперь всё ок :)

Мне кажется Ваш первый вариант был удобнее.
Создание статистики за день, месяц (жалко, что за неделю не получится таким образом).
Т.е запуск двух скриптов ежечасно, один будет за день считать, а другой суммировать за месяц. потом меняется месяц, изменяется %m и начинает создаваться следующая папка с логом.

sarg.month.sh
#!/bin/sh
dat1=`date +/%m/%Y`
dat2=`date +%d/%m/%Y`
dats="01/$dat1-$dat2"
/usr/bin/sarg -d $dats

sarg.day.sh
#!/bin/sh
dat=`date +%d/%m/%Y`
dats="$dat-$dat"
/usr/bin/sarg -d $dats

И запускать их ежечасно, с промежутком в минуту между собой.

58 * * * * /etc/squid/sarg.day.sh
59 * * * * /etc/squid/sarg.month.sh

Может так?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от zabudkin emailИскать по авторуВ закладки(ok) on 26-Ноя-04, 15:54  (MSK)
>Мне кажется Ваш первый вариант был удобнее.
>Создание статистики за день, месяц (жалко, что за неделю не получится >таким образом).
:))) Я вновь придумал!!!

За неделю:
#!/bin/sh
datm=`date +%m/%Y`
datm2=`date +%m`
datd=`date +%d`
datw=`date +%u`
startw=$(bc << EOF
($datd-$datw)+1
EOF
)
endw=$(bc << EOF
$startw+7
EOF
)
dats="$startw/$datm-$endw/$datm"
/usr/bin/sarg -d $dats

>Т.е запуск двух скриптов ежечасно, один будет за день считать, а другой
>суммировать за месяц. потом меняется месяц, изменяется %m и начинает
>создаваться  следующая папка с логом.

>sarg.month.sh
>#!/bin/sh
>dat1=`date +/%m/%Y`
>dat2=`date +%d/%m/%Y`
>dats="01/$dat1-$dat2"
>/usr/bin/sarg -d $dats

Не верно :) Таким образом каждый день будут папки вида:
2004/11/01-2004/11/02
2004/11/01-2004/11/03
2004/11/01-2004/11/04
2004/11/01-2004/11/05
.....
2004/11/01-2004/11/30


>И запускать их ежечасно, с промежутком в минуту между собой.
Ни в коем случае!
Ваша система будет подсчитывать за месяц каждый час? И Вы готовы ее этим загрузить?
Всё-туки лучший вариант каждый день запускать подсчет статистики за месяц, а каждый час - за день.

Для месяцев лучше использовать такой скрипт:
#!/bin/sh
datm=`date +%m/%Y`
datm2=`date +%m`
daysinmonth=( 31 28 31 30 31 30 31 31 30 31 30 31)
dats="01/$datm-${daysinmonth[$datm2-1]}/$datm"
/usr/bin/sarg -d $dats

  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от Name Искать по авторуВ закладки on 26-Ноя-04, 16:24  (MSK)
>Не верно :) Таким образом каждый день будут папки вида:
>2004/11/01-2004/11/02
>2004/11/01-2004/11/03
>2004/11/01-2004/11/04
>2004/11/01-2004/11/05
>.....
>2004/11/01-2004/11/30
>
>
>>И запускать их ежечасно, с промежутком в минуту между собой.
>Ни в коем случае!
>Ваша система будет подсчитывать за месяц каждый час? И Вы готовы ее
>этим загрузить?
>Всё-туки лучший вариант каждый день запускать подсчет статистики за месяц, а каждый
>час - за день.
>
>Для месяцев лучше использовать такой скрипт:
>#!/bin/sh
>datm=`date +%m/%Y`
>datm2=`date +%m`
>daysinmonth=( 31 28 31 30 31 30 31 31 30 31 30
>31)
>dats="01/$datm-${daysinmonth[$datm2-1]}/$datm"
>/usr/bin/sarg -d $dats

Не будут, ибо можно поставить опцию удаления предидущей записи (кажется так overwrite_report yes) :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от PJ Искать по авторуВ закладки(??) on 29-Ноя-04, 16:38  (MSK)

>Это запуск ПЕРВОГО числа каждого месяца.
>А мне нужно ПОСЛЕДНЕГО.
>Иначе
>
>#!/bin/sh
>dat=`date +/%m/%Y`
>dats="01$dat-31$dat"
>/usr/bin/sarg -d $dats
>
>Даст неверное значение.
>Всё-таки как?

Последний день предыдущего месяца - это первый день текущего минус 1 день
date -v -1d (в BSD)


  Рекомендовать в FAQ | Cообщить модератору | Наверх

18. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от NoName Искать по авторуВ закладки on 30-Ноя-04, 15:19  (MSK)
>>Ведь в каждом месяце разное количество дней. Чтобы считать трафик squid-а за месяц.
>Скрипт нужно запускать в 23 часа 59 минут

Нет, я конечно понимаю, что это дело принципа, но так ли важна для вас пара минут?
Как вариант, генерим статистику 1-го числа ЛЮБОГО месяца часиков, эдак, в 0:01, за предыдущий. Разница в 2 минуты, а проблем восприятия меньше.

MONTHAGO=$(date --date "1 month ago" +01/%m/%Y)-$(date --date "1 month ago" +31/%m/%Y)
/usr/sbin/sarg -d $MONTHAGO

Запускаем, например, так:
01 0 1 * * run-parts /etc/cron.monthly

Все! Начался новый месяц - подвели итоги за прошлый, с точностью до минуты :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от zabudkin emailИскать по авторуВ закладки(ok) on 26-Ноя-04, 15:58  (MSK)
Вообщем подведем итоги :)))

Статистика за текущий день (скажем из недельного, месячного лога):
#!/bin/sh
dat=`date +%d/%m/%Y`
dats="$dat-$dat"
/usr/bin/sarg -d $dats

Статистика текущую за неделю:
#!/bin/sh
datm=`date +%m/%Y`
datm2=`date +%m`
datd=`date +%d`
datw=`date +%u`
startw=$(bc << EOF
($datd-$datw)+1
EOF
)
endw=$(bc << EOF
$startw+7
EOF
)
dats="$startw/$datm-$endw/$datm"
/usr/bin/sarg -d $dats

Статистика за текущий месяц:
#!/bin/sh
datm=`date +%m/%Y`
datm2=`date +%m`
daysinmonth=( 31 28 31 30 31 30 31 31 30 31 30 31)
dats="01/$datm-${daysinmonth[$datm2-1]}/$datm"
/usr/bin/sarg -d $dats

Изменения в /etc/crontab:
59 * * * * root nice -n 19 run-parts /etc/cron.hourly
59 23 * * * root nice -n 19 run-parts /etc/cron.daily

В /etc/cron.hourly кладем скрипт подсчета статистики за день,
а в /etc/cron.daily кладем остальные два скрипта.

При этом учитываем, что РОТАЦИЯ логов SQUID должна быть ЕЖЕМЕСЯЧНОЙ или более долгой.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от Name Искать по авторуВ закладки on 26-Ноя-04, 16:20  (MSK)
>Статистика за текущий месяц:
>#!/bin/sh
>datm=`date +%m/%Y`
>datm2=`date +%m`
>daysinmonth=( 31 28 31 30 31 30 31 31 30 31 30
>31)
>dats="01/$datm-${daysinmonth[$datm2-1]}/$datm"
>/usr/bin/sarg -d $dats

А как же високосный и невисокосный года? :))
Каждые 4 года корректировать? Так и забыть можно, а потом
вспоминать отчего не сходится чего-то :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "Sarg+Squid = отчет и дата отчетов!"
Сообщение от Name Искать по авторуВ закладки on 26-Ноя-04, 16:33  (MSK)
>Изменения в /etc/crontab:
>59 * * * * root nice -n 19 run-parts /etc/cron.hourly
>59 23 * * * root nice -n 19 run-parts /etc/cron.daily
>
>В /etc/cron.hourly кладем скрипт подсчета статистики за день,
>а в /etc/cron.daily кладем остальные два скрипта.

Наверное за неделю лучше всё-таки положить в cron.weekly
иначе он каждый день будет отсчитывать неделю назад :))

>При этом учитываем, что РОТАЦИЯ логов SQUID должна быть ЕЖЕМЕСЯЧНОЙ или более
>долгой.

Согласен, хотя можно и мой метод, тогда и лог не будет таким пухлым и
посчитать можно :)) И ротация тогда будет еженедельной :)
Только тогда недельный подсчёт делать раньше ротации :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру