perl & trafd

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
sancho
рядовой
Сообщения: 24
Зарегистрирован: 2008-10-04 22:39:24
Контактная информация:

perl & trafd

Непрочитанное сообщение sancho » 2009-08-05 12:53:11

В оопщем имееться скрипт на perl.

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

#!/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.
Установил пакет p5-DBD-mysql с портов. Непомогло.
Помогите плиз

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: perl & trafd

Непрочитанное сообщение ProFTP » 2009-08-05 13:21:56

а кто его писал?

четко написано: Can't locate object method "Connect" via package "mysql"

попробуй поставить сonnect
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
sancho
рядовой
Сообщения: 24
Зарегистрирован: 2008-10-04 22:39:24
Контактная информация:

Re: perl & trafd

Непрочитанное сообщение sancho » 2009-08-05 14:52:49

ProFTP писал(а):а кто его писал?

четко написано: Can't locate object method "Connect" via package "mysql"

попробуй поставить сonnect
писал мой друг, пробовал я и так писать... непомогло.. тоже самое пишет.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: perl & trafd

Непрочитанное сообщение ProFTP » 2009-08-05 14:59:00

есди друг писал, он его проверял? или в слепую писал?

замени use mysql; на use DBI;
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
sancho
рядовой
Сообщения: 24
Зарегистрирован: 2008-10-04 22:39:24
Контактная информация:

Re: perl & trafd

Непрочитанное сообщение sancho » 2009-08-05 15:06:24

ProFTP писал(а):есди друг писал, он его проверял? или в слепую писал?

замени use mysql; на use DBI;
Да этот скрипт отработал больше 2 лет. Патом систему переустановить пришлось. Точнее все заново пришлось переустановить.