Обсуждение статьи тематического каталога: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)Ссылка на текст статьи: http://www.opennet.me/base/net/traf_mes.txt.html
статья классная. но с while [ $i -le 254 ] аффтар завернул мощно! :) for i in `seq 254` он не слышал :)
ужас:| grep chain_$i | head -c 18 | tail -c 9
неужас:
| awk "/chain_$i/{print \$2}"
Перед снятием статистики и очисткой можно прохлопать несколько мегабайт на хорошем канале.. лучше снимать статистику со всей цепи с очисткой /sbin/iptables -L FORWARD -v -x -Z -n , а потом а потом снятую статистику обрабатывать
Точнее:
| awk "/chain_$i/{print \\\$2}"
а как быть в случае, если прозрачно прокси сделан. ТОгда все пакеты, которые идут через сквид не являются FORWARD.
Вместо i=`expr $i + 1`
можно было сделать
i=$(($i+1))
Работает на порядок быстрее.
коротко и по делу
самый толковый пример для разбора
грандиозный риспект автору
а зачем 250 раз дергать iptables если можно запомнить вывод и подпихивать его, имхо ускорят на пару порядковOUT=`iptables -L FORWARD -v -x`
...
for (( i = 1; i <= 254; i++ ))
do
RX=`echo "$OUT" | awk "/chain_$i/{print \\\$2}"`
if [ 0${RX} -ne 0 ]
then echo "$DAT $i ${RX}
" >> index.html
fi
done