Написал скриптец:
#!/usr/bin/perl -wuse strict;
use Net::Telnet ();my $username="username";
my $password="passwd";
my $host="IP";
my $port="23";my $t=Net::Telnet->new(Prompt => '/tcsh\$ $/');
$t->open(Host => $host, Port => $port);
$t->login($username, $password);
my @lines = $t->cmd('ps');
print @lines;В итоге вижу на удаленном сервере(freebsd6.1), что логинится без проблем, но выполнять комманды в терминале не хочет, отваливается по timeout'у.
Что я не так сделал?
>Написал скриптец:
>#!/usr/bin/perl -w
>
>use strict;
>use Net::Telnet ();
>
>my $username="username";
>my $password="passwd";
>my $host="IP";
>my $port="23";
>
>my $t=Net::Telnet->new(Prompt => '/tcsh\$ $/');
>$t->open(Host => $host, Port => $port);
>$t->login($username, $password);
>my @lines = $t->cmd('ps');
>print @lines;
>
>В итоге вижу на удаленном сервере(freebsd6.1), что логинится без проблем, но выполнять
>комманды в терминале не хочет, отваливается по timeout'у.
>
>Что я не так сделал?В первом приближении все верно, возможно, кто-то заметит ошибки. Однако, со своей стороны, хотел бы посоветовать запустить tcpdump и представить из него выжимки, думаю это на большие мысли подтолкнет.
>Написал скриптец:
>#!/usr/bin/perl -w
>
>use strict;
>use Net::Telnet ();
>
>my $username="username";
>my $password="passwd";
>my $host="IP";
>my $port="23";
>
>my $t=Net::Telnet->new(Prompt => '/tcsh\$ $/');
>$t->open(Host => $host, Port => $port);
>$t->login($username, $password);
>my @lines = $t->cmd('ps');
>print @lines;
>
>В итоге вижу на удаленном сервере(freebsd6.1), что логинится без проблем, но выполнять
>комманды в терминале не хочет, отваливается по timeout'у.
>
>Что я не так сделал?Скорее всего у тебя Prompt определен неточно, проверь точно ли такое(tcsh$ ) приглашение выдает сервер зарегистрированному пользователю.
>Скорее всего у тебя Prompt определен неточно, проверь точно ли такое(tcsh$ )
>приглашение выдает сервер зарегистрированному пользователю.use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10,
Prompt => '/[%#>] $/');
$t->open($host);
$t->login($username, $passwd);
@lines = $t->cmd("$command");
print "@lines\n";
exit;так заработало :)
Всем спасибо за помощь.
>>Скорее всего у тебя Prompt определен неточно, проверь точно ли такое(tcsh$ )
>>приглашение выдает сервер зарегистрированному пользователю.
>
>use Net::Telnet ();
>$t = new Net::Telnet (Timeout => 10,
> Prompt => '/[%#>] $/');
>$t->open($host);
>$t->login($username, $passwd);
>@lines = $t->cmd("$command");
>print "@lines\n";
>exit;
>
>так заработало :)
>Всем спасибо за помощь.;-))) Тебе хорошо, у меня эта штука все равно умирает, когда даешь команду требующую длинного вывода типа show config, она ждет когда от сервера придет промпт, а приходит что нибудь типа : пресс эни кей. И ни тот ни другой с места не двигаются.