Задача настроить шлюз, вести учет всего трафика... Статью брал от сюда http://www.tmeter.ru/misc/trafd/ запоролся на финальной стадии....
# ./db_step1.pl syntax error at ./db_step1.pl line 14, near "=)" syntax error at ./db_step1.pl line 56, near "}" Execution of ./db_step1.pl aborted due to compilation errors. Что делать??????? ____________________________________________________________________ Для обработки текстовых файлов трафика будем использовать следующий скрипт (назовем его /usr/local/etc/traffic/db_step1.pl):
#!/usr/bin/perl use Mysql;
$plain_path='/usr/local/var/traffic_plain/'; $yesterday=`date -v-1d '+%Y%m%d'`; chomp($yesterday); $full_path=$plain_path.$yesterday.".fxp0";
$dbh = Mysql->Connect("","ipacc"); $del_query="delete from yesterday;"; $dbh->Query($del_query);
open(F,$full_path) || die "Can't open traffic plain file"; while ($str=) { chomp($str); $fi=substr($str,0,1);
if (($fi>='1') && ($fi<='9')) { @a=split('\s+',$str); # @a[0] - src_ip, @a[1] - src_port, @a[2] - dst_ip, @a[3] - dst_port # @a[4] - proto, @a[6] - size of packets
if (@a[1] eq 'client') { $src_port=65535; } else { if (@a[1] eq 'none') { $src_port=0; } else { $src_port=@a[1];
} } if (@a[3] eq 'client') { $dst_port=65535; } else { if (@a[3] eq 'none') { $dst_port=0; } else { $dst_port=@a[3]; } } $proto=0; if (@a[4] eq 'icmp') { $proto=1; } if (@a[4] eq 'tcp') { $proto=6; } if (@a[4] eq 'udp') { $proto=17; }
$ins_query="insert into yesterday (src_ip, src_port, dst_ip,\ dst_port, proto, bytes) values ('".@a[0]."',".$src_port.\ ",'".@a[2]."',".$dst_port.",".$proto.\"," ;.$a[6].");"; $dbh->Query($ins_query); }; };
close(F);