gingerino а в /opt/Billing/users/ файлы вида 2010-04-13 создаются?
gingerino а в /opt/Billing/users/ файлы вида 2010-04-13 создаются?
Last edited by serji; 13-04-2010 at 17:43.
Вся настройка статистики целиком и полностью в первом посте. Ни какие другие скрипты не нужны - скрипт один /opt/etc/cron.5mins/end
можете, например, заменить эту строчку
на этоCode:printf("<tr><td><font color=blue>%s</font></td><td><font color=green>%.2f</font></td><td><font color=red>%.2f</font></td><td><font color=blue>%.2f</font></td></tr>\n",$1,$2/1024/1024,$3/1024/1024,$4/1024/1024)
Code:{ if(($1) == "192.168.1.11"){$1="Вася"} if(($1) == "192.168.1.15"){$1="Петя"} if(($1) == "192.168.1.2"){$1="Маша"} printf("<tr><td><font color=blue>%s</font></td><td><font color=green>%.2f</font></td><td><font color=red>%.2f</font></td><td><font color=blue>%.2f</font></td></tr>\n",$1,$2/1024/1024,$3/1024/1024,$4/1024/1024); }
Last edited by Omega; 20-11-2011 at 14:37. Reason: fixed
ASUS wl500gP/300МГц/128MБ RAM + HDD Hitachi 160GB fw:1.9.2.7-d-r2624 Статистика потребляемого трафика по ip
т.е. перед каждым принтом дописать?
снес всё.Code:{ if(($1) == "192.168.1.250"){$1="KrOlya"} if(($1) == "192.168.1.252"){$1="Taty"} if(($1) == "192.168.1.206"){$1="dell-SERA"} printf (...); }
установил с "Установка программ для чайника" за 15 мин. без vnstata и пр.
создал папки, файл end, добавил правило в post-firewall.
в начале всёравно в статистике нули. и каждый запуск end добавляет строчки с 0 (нулями) по количеству пользователей.
но после нескольких перезагрузок все нормализовалось, трафик считается.... СПС!
Last edited by serji; 14-04-2010 at 06:38.
Что же мне делать? Ума не приложу.... Вижу, что статистика через iptables считается.. Но на страничку не попадает
Может быть дело в ip-piring ? Дело в том что этот файл у меня пустой... Стоп! Простите, я позабыл его создать вовсе!...
Last edited by gingerino; 14-04-2010 at 11:30.
ASUS wl500gP/300МГц/128MБ RAM + HDD Hitachi 160GB fw:1.9.2.7-d-r2624 Статистика потребляемого трафика по ip
Пробовал по разному. Сначала залил wget'ом на свой фтпишник, потом через putty тем же wget'ом на роутер... Потом пробовал копировать из консоли через cat... всё одно. да и винды нету... Через неделю только попробую переставить. Пока наблюдаю картину из консоли... Спасибо.
Похоже нули появляются после добавления пользователей в ethers и если в iptables еще нет для них правил..
В логи попадёт запись типа "192.168.X.X 0" (0 дает сложение in out)
Которая при следующем запуске скрипта увеличит счётчик пользователей на лишнюю единицу, ведь if(NF == 2) - истинно
Для исправления глюка добавил пару нулей
Или можно объявить массивы численными?Code:print(userip[j]" "ipin[userip[j]]+0" "ipout[userip[j]]+0" "ipin[userip[j]]+ipout[userip[j]]" "dipin[userip[j]]" "dipout[userip[j]]);
Last edited by Sheps; 22-04-2010 at 05:59.
Итак, всё на самом деле работало и работает. Дело было в том, что файл ethers я оформлял не должным образом, а типа вот этого:
после исправления и перезагрузки роутера всё стало по своим местам.mac-address1 ip-address1 #user1
mac-address2 ipaddress2 #user2
Статистика считает правильно.
Теперь другая трабла. С вай-фай клиентами. Не могу выйти в инет, даже прописав мак адрес и настроив dhcp даже только для одного клиента...
маки всех компьютеров, включая, тех которые подключены по wifi надо писать так же в /usr/local/etc/ethers
если вам не нужна блокиравка по макам, то можете убрать из post-firewall это
Code:iptables -N MAC_IP iptables -I FORWARD 1 -o ! br0 -j MAC_IP awk '{system("iptables -A MAC_IP -s "$2" -m mac --mac-source "$1" -j RETURN")}' < /etc/ethers iptables -A MAC_IP -j DROP
Last edited by KinoMan; 15-05-2010 at 23:42.
ASUS wl500gP/300МГц/128MБ RAM + HDD Hitachi 160GB fw:1.9.2.7-d-r2624 Статистика потребляемого трафика по ip
KinoMan подскажите, пожалуйста, может быть Ваш скрипт можно подправить чтобы жестко резать скорость пользователям? Стоит nshaper, но нужно фиксированно разделить канал, а уже внутри его шейпить трафик.
ASUS wl500gP/300МГц/128MБ RAM + HDD Hitachi 160GB fw:1.9.2.7-d-r2624 Статистика потребляемого трафика по ip
Автору спасибо большое за полезный скрипт!
В продолжение темы - один вопрос и одно предложение:
1.Как бы сделать, чтобы сброс текущей статистики производился не 1-го числа каждого нового месяца, а в некий произвольный день X? К сожалению, моих мизерных знаний в программировании на shell не хватает для решения этой, на первый взгляд, простой задачи. Следует помнить, что если X определен, например, на 31-е число, то сброс статистики для разных месяцев должен происходить либо именно 31-го числа, либо в последний имеющийся день месяца (30, 29 или 28-го числа - в зависимости от месяца и (не)високосного года).
Такой способ работы скрипта требуется, чтобы синхронизировать подсчет статистики с биллингом провайдера, у которого текущий расчетный период начинается именно в день X (день первого подключения к провайдеру).
2.Касательно пропуска подсчета трафика для пиринговых сетей. Как правило, для того, чтобы для них трафик шел по локальной сети провайдера, а не через интернет на роутере уже прописаны соответствующие маршруты в post-boot. В этом случае провайдер не учитывает такой трафик в своем биллинге для вашего эккаунта и скорость доступа к пиринговым ресурсам обычно заметно выше. Предлагаю либо сразу и использовать эти маршруты в работе скрипта end, либо просто вытаскивать их из post-boot в ip_piring.lst автоматически.
Last edited by ale_xb; 02-09-2010 at 11:49.