URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5601
[ Назад ]

Исходное сообщение
"Не выполняются комманды в telnet"

Отправлено worm , 25-Июл-06 18:55 
Написал скриптец:
#!/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'у.

Что я не так сделал?


Содержание

Сообщения в этом обсуждении
"Не выполняются комманды в telnet"
Отправлено chip , 25-Июл-06 21:53 
>Написал скриптец:
>#!/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 и представить из него выжимки, думаю это на большие мысли подтолкнет.



"Не выполняются комманды в telnet"
Отправлено NuINu , 27-Июл-06 10:00 
>Написал скриптец:
>#!/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$ ) приглашение выдает сервер зарегистрированному пользователю.


"Не выполняются комманды в telnet"
Отправлено worm , 27-Июл-06 10:41 
>Скорее всего у тебя 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;

так заработало :)
Всем спасибо за помощь.


"Не выполняются комманды в telnet"
Отправлено NuINu , 27-Июл-06 17:31 
>>Скорее всего у тебя 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, она ждет когда от сервера придет промпт, а приходит что нибудь типа : пресс эни кей. И ни тот ни другой с места не двигаются.