Код: Выделить всё
#!/usr/bin/perl
use mysql;
$dbh=mysql->Connect("","db","login","pass");
$del_query="delete from hourly;";
$dbh->Query($del_query);
$plain_path='/usr/local/var/traffic_plain/';
$lasthour=`date '+%Y%m%d%H'`;
chomp($lasthour);
#$full_path=$plain_path.$lasthour.".ng";
Process($plain_path.$lasthour.".rl0");
Process($plain_path.$lasthour.".sk0");
Process($plain_path.$lasthour.".ng0");
Process($plain_path.$lasthour.".ng1");
Process($plain_path.$lasthour.".ng2");
Process($plain_path.$lasthour.".ng3");
Process($plain_path.$lasthour.".ng4");
Process($plain_path.$lasthour.".ng5");
Process($plain_path.$lasthour.".ng6");
Process($plain_path.$lasthour.".ng7");
#Process($plain_path."20070703.sk1");
sub Process {
my $fn = shift;
open(F,$fn) || die "Can't open traffic plain file ".$fn;
while ($str=<F>)
{
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 hourly (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);
}
Код: Выделить всё
# ./db_step1.pl
Can't locate object method "Connect" via package "mysql" (perhaps you forgot to load "mysql"?) at ./db_step1.pl line 4.
Помогите плиз