Делай раз
#!/bin/bash
IPT=/sbin/iptables
LOCAL="195.34.224.0/19 81.20.192.0/20 172.16.0.0/12 192.168.0.0/16"
$IPT -N LOCAL
$IPT -N INET
$IPT -A LOCAL -p all -j ACCEPT
$IPT -A INET -p all -j ACCEPT
for i in $LOCAL;
do
$IPT -A INPUT -s $i -j LOCAL
done
$IPT -A INPUT -p all -j INET
Делай два
#!/bin/bash
IPT=/sbin/iptables
INET1=`/sbin/iptables -v -x -L INET | grep ACCEPT | awk '{print $2 }'`
LOCAL1=`/sbin/iptables -v -x -L LOCAL | grep ACCEPT | awk '{print $2 }'`
FILE=`date '+%Y-%m-%d'`
INET2=`cat /etc/counter/$FILE | awk '{ print $2}'`
LOCAL2=`cat /etc/counter/$FILE | awk '{ print $1}'`
LOCAL=`echo -n "$LOCAL1 $LOCAL2" | gawk '{ print $1+$2}'`
INET=`echo "$INET1 $INET2" | gawk '{ print $1+$2 }'`
echo "$LOCAL $INET" > /etc/counter/$FILE
$IPT -Z
Делай три
#!/bin/bash
if [ -z "$1"] ; then
FILE=`date '+%Y-%m-%d'`
else
FILE=$1
fi
cat /etc/counter/$FILE | gawk '{ print "За выбранный день благополучно потрачено " $1/1024 " Kb внутреннего и " $2/1024 " Kb внешнего трафа."}'
первый скрипт прописываем в автозагрузку, второй - в крон, с желаемым интервалом обновления, третьим - смотрим чего, куда качалось (параметром передается имя файла для просмотра в виде YYYY-MM-DD. Например 2008-04-06).
Выводится что-то типа
./trafmeter
За выбранный день благополучно потрачено 707,173 Kb внутреннего и 11070,8 Kb внешнего трафа.
enjoy
PS За скрипты сильно не ругайте
Что может быть еще проще - я не представляю