BPFT v.4.0

Originally BPFT v4 page located at SourceForge Logo
Работы над скриптами trafd закрыты. На больших объемах trafd начинает терять данные, поэтому, с увеличением ширины канала
мы были вынуждены перейти на другую программу: ng_ipacct (ставится из портов net-mgmt/ng_ipacct).

Скрипт для ввода данных из файлов trafd в базу MySQL

03.07.2002 Script traffic_to_mysql_6
- исправлена ошибка с записью данных первого числа месяца.
22.03.2002 Script traffic_to_mysql_5
- изменен формат записи времени в базу на юниксовые секунды. Так оказалось проще выводить из базы в web-интерфейс.
- невыловленные баги - иногда первого числа не находит таблицу. Грабля в механизме образования имени файла:
первого числа оно получается traffic0_1 вместо traffic0_01.

Вывод данных из базы

Данные планируется выводить по запросу пользователя на экран браузера
с помощью обработки sql-запросов в php-скрипте. Сам скрипт целиком и
полностью зависит от фантазии разработчика, принятого уровне секьюрити
и прочих вредных привычек администратора.:)

Запросы примерно такого вида (где $TA- имя таблицы):

select ip_to, SUM(bytes), MIN(ftime), MAX(ltime) from $TA where ip_to like '192.168.%' and ip_from not like '192.168.%' group by ip_to

Нет времени возить ребенка в школу? Возьмите в аренду Mercedes W221 с водителем и будете спокойны!



В случае, если IP хранятся в виде INT(10) - запросы выглядят примерно так:
select_in="select from_unixtime((btime - btime%86400)) as mintime, \
           from_unixtime(max(btime)) as maxtime, \
           sum(bytes) from "${TA}" \
           where ip_from not between '3232235520' and '3232301055' \
           group by mintime";
# sport not between '137' and '139'
select_25="select from_unixtime((btime - btime%86400)) as mintime, \
           from_unixtime(max(btime)) as maxtime, \
           sum(bytes) from "${TA}" \
           where ip_from not between '3232235520' and '3232301055' \
           and dport='25' \
           group by mintime";
select_80="select from_unixtime((btime - btime%86400)) as mintime, \
           from_unixtime(max(btime)) as maxtime, \
           sum(bytes) from "${TA}" \
           where ip_from not between '3232235520' and '3232301055' \
           and sport='80' \
           group by mintime";





mailto:aost@... Copyright © 1999 - 2002 aost.
Last update: