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

Исходное сообщение
"Net::Telnet побороть не могу - help, pl..."

Отправлено Agressor , 11-Сен-03 18:37 
Hi All!  Подскажите - как телнетом при помощи скрипта (или еще как:-) зайти в систему и передать login и passwd а затем команду. Для чего надо? - есть xDSL модем, у которого иногда виснет интерфейс тот который в кабель (PPPoE), а eth0 к машине живой остается. Вот и надо его при отсутствии пинга ребутнуть без участия человека...
Подсказали копать в сторону Perl  Net::Telnet.
С Perl'ом никогда дела близко не имел, но все же наваял скриптик:
Запускаю так: ./script login passwd

#!/usr/bin/perl
use Net::Telnet ();
$t = new Net::Telnet (Timeout => 20);
$t->open("192.168.0.10");
$t->login($login, $password);
$t->cmd("reboot");

и проблемка в том что он по таймауту вываливается:
timed-out waiting for password prompt at ./script line 5
создается впечатление, что "некому нажать enter" после ввода пароля.
Что посоветуете?

P.S.   Прошу прощения за ламерский вопрос...


Содержание

Сообщения в этом обсуждении
"Net::Telnet побороть не могу - help, pl..."
Отправлено Alex , 12-Сен-03 11:24 
>#!/usr/bin/perl
>use Net::Telnet ();

#инициализировать переменные
my $login = shift or die "Login name required";
my $password = shift or die "Password required";

>$t = new Net::Telnet (Timeout => 20);
>$t->open("192.168.0.10");
>$t->login($login, $password);
>$t->cmd("reboot");


"Net::Telnet побороть не могу - help, pl..."
Отправлено Agressor , 12-Сен-03 18:15 
>
>#инициализировать переменные

А толку? Это проблему не решает....
Он после ввода логина ентер как не давил - так и не давит


"Net::Telnet побороть не могу - help, pl..."
Отправлено nekto , 13-Сен-03 10:58 
>Hi All!  Подскажите - как телнетом при помощи скрипта (или еще
>как:-) зайти в систему и передать login и passwd а затем
>команду. Для чего надо? - есть xDSL модем, у которого иногда
>виснет интерфейс тот который в кабель (PPPoE), а eth0 к машине
>живой остается. Вот и надо его при отсутствии пинга ребутнуть без
>участия человека...
>Подсказали копать в сторону Perl  Net::Telnet.
>С Perl'ом никогда дела близко не имел, но все же наваял скриптик:
>
>Запускаю так: ./script login passwd
>
>#!/usr/bin/perl
>use Net::Telnet ();
>$t = new Net::Telnet (Timeout => 20);
>$t->open("192.168.0.10");
>$t->login($login, $password);
>$t->cmd("reboot");
>
>и проблемка в том что он по таймауту вываливается:
>timed-out waiting for password prompt at ./script line 5
>создается впечатление, что "некому нажать enter" после ввода пароля.
>Что посоветуете?
>
>P.S.   Прошу прощения за ламерский вопрос...


try to use expect
instead of perl-net::telnet
:
expect...
send ...

примеры есть