[lms] alternatywny do traffic_ipt.sh skrypt tworzacy statystki

orzi orzi w jedwab.net.pl
Wto, 19 Kwi 2005, 01:03:18 CEST


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"







Więcej informacji o liście dyskusyjnej lms