Страница 2 из 2

Добавлено: 2006-09-20 10:49:31
weber
дык... вот мой конфиг

Код: Выделить всё

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#
как поступить?

Добавлено: 2006-09-20 10:51:35
Alex Keda
я перл плохо знаю...
а DBI не использовал, хотя правильней его использовать...
почитай в самом модуле, в конце, обычно комменты есть.