alternatywny do traffic_ipt.sh skrypt tworzacy statystki
Czesc. Napisalem wlasny odpowiednik skryptu /sample/traffic_ipt.sh Jest moim zdaniem bardziej uniwersalny - nie trzeba wpisywac na sztywno adresow IP (ich koncowek) tylko sa one pobierane z lancucha RECV. Kto chce, niech uzywa. Moze tez zostac umieszczony w contrib'ie. #!/bin/bash # robol.sh Alternatywny skrypt dla lms-traffic # orzi <orzi%jedwab,net,pl> # Wymagania: grep, awk # Ponizszy opis wziety z sample/traffic_ipt.sh: # Skrypt zliczajacy ruch dla kazdego usera na podstawie # licznikow iptables. Nalezy go uruchamiac z crona # na przyklad co 10 minut. # Na firewallu nalezy utworzyc lancuchy zliczajace ruch: # iptables -N RECV # iptables -N SEND # i nastepnie dla kazdego komputera regulki: # iptables -A RECV -d <IP komputera w sieci LAN> -j RETURN # iptables -A SEND -s <IP komputera w sieci LAN> -j RETURN # i na koncu: # iptables -A FORWARD -j RECV # iptables -A FORWARD -j SEND ## Konfiguracja PLIK_WYNIK='/etc/firewall/traffic.log' IPT=/sbin/iptables ## # Ponizej nic nie zmieniac PLIK_SEND='/tmp/send.stat.'$$ PLIK_RECV='/tmp/recv.stat.'$$ # Odczytanie licznikow z firewalla i zapis do plikow $IPT -L RECV -v -x -n > $PLIK_RECV $IPT -L SEND -v -x -n > $PLIK_SEND # Usuniecie starego traffic.log if [ -e $PLIK_WYNIK ] then rm $PLIK_WYNIK fi # main LISTA_IPS=`egrep -v Chain\|pkts $PLIK_SEND | awk ' { print $8 } ' ` for i in $LISTA_IPS do CYFERKAS=`grep "$i " $PLIK_SEND | awk ' { print $2 } ' ` CYFERKAR=`grep "$i " $PLIK_RECV | awk ' { print $2 } ' ` # <adres IP> <n_spacji> <upload> <n_spacji> <download> echo "$i $CYFERKAS $CYFERKAR" >> $PLIK_WYNIK done # Zerowanie licznikow firewall'a $IPT -Z # usunicie plikow z licznikami rm $PLIK_SEND rm $PLIK_RECV -- "God ctrl+s me"
uczestnicy (1)
-
orzi