Код: Выделить всё
less db_step1.pl
#!/usr/bin/perl
use Mysql;
$dsn = 'DBI:mysql:db_name:localhost';
$db_user = 'user';
$db_pass = 'password';
$dbh = DBI->connect($dsn, $db_user, $db_pass);
$plain_path='/usr/local/var/plain/';
$yesterday=`date -v-1d '+%Y%m%d'`;
chomp($yesterday); $full_path=$plain_path.$yesterday.".fxp1";
$del_query="delete from yesterday;";
$dbh->Query($del_query);
open(F,$full_path) || die "Can't open traffic plain file";
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 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);
Код: Выделить всё
proxy# /usr/local/var/trafd/db_step1.pl
Can't locate object method "Query" via package "DBI::db" at /usr/local/var/trafd/db_step1.pl line 14.
proxy#