Perl: добить скрипт....Как получить вывод?, weldpua2008, 13-Апр-07, 03:08 [смотреть все]Привет ВСЕМ Вот скрипт:#!/usr/local/bin/perl $hostname="127.0.0.1"; $port="5005"; if( $ARGV[4] eq '' ) { die 'Usage: user nasip userip nasport'; }; $framedip=$ARGV[0]; $user=$ARGV[1]; $nasip=$ARGV[2]; $userip=$ARGV[3]; $nasport=$ARGV[4]; $nasport=$nasport+1; use Net::Telnet (); $t = new Net::Telnet ; $t->open(Host => $hostname, Port => $port, Timeout => 10); $t->waitfor('/Username:.*$/'); $t->print("mpd"); $t->waitfor('/Password:.*$/'); $t->print("PASSW"); $t->print("bundle pptp1"); Дальше надо выполнить команду и с выводом поработать... $t->print("show summary"); Как Мне получить вывод? И потом выполнить ввод еще команд? Вот подключение по телнет: telnet 127.0.0.1 5005 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Multi-link PPP daemon for FreeBSD Username: mpd Password: Welcome! Mpd pid 1481, version 4.1 (root@server 21:06 24-Feb-2007) [pptp1] bundle pptp1 [pptp1] CONSOLE: mpd: bundle pptp1 [pptp1] show summary [pptp1] CONSOLE: mpd: show summary Current daemon status summary Iface Bund Link Device Iface LCP Device User From ng1 pptp1 pptp1 pptp Down Initial DOWN UNSPEC ng2 pptp2 pptp2 pptp Down Initial DOWN UNSPEC ng3 pptp3 pptp3 pptp Down Initial DOWN UNSPEC ..........................тут повторение......................... ng398 pptp398 pptp398 pptp Down Initial DOWN UNSPEC ng399 pptp399 pptp399 pptp Down Initial DOWN UNSPEC ng400 pptp400 pptp400 pptp Down Initial DOWN UNSPEC [pptp1] Когда [pptpХХХ] можно вводить команды Заранее Спасибо |
- Perl: добить скрипт....Как получить вывод?, NuINu, 09:39 , 13-Апр-07 (1)
>Привет ВСЕМ >Вот скрипт: Испльзуй @result = $t->cmd("show summary")
- Perl: добить скрипт....Как получить вывод?, weldpua2008, 00:46 , 14-Апр-07 (2)
>>Привет ВСЕМ >>Вот скрипт: > >Испльзуй >@result = $t->cmd("show summary") command timed-out at ./mpd_kill2.pl line 40 - это эта строка...
- Perl: добить скрипт....Как получить вывод?, NuINu, 22:10 , 14-Апр-07 (3)
>>>Привет ВСЕМ >>>Вот скрипт: >> >>Испльзуй >>@result = $t->cmd("show summary") >command timed-out at ./mpd_kill2.pl line 40 - это эта строка... Ну вот видишь, уже кое что работает :-) Вообщем в конце выполнения команды удаленная система не выдает промпт, который ожидает твой клиент, надо узнать что за промпт она выдает и сказать клиенту что нужно ждать именно его.
- Perl: добить скрипт....Как получить вывод?, weldpua2008, 00:41 , 16-Апр-07 (4)
>>>>Привет ВСЕМ >>>>Вот скрипт: >>> >>>Испльзуй >>>@result = $t->cmd("show summary") >>command timed-out at ./mpd_kill2.pl line 40 - это эта строка... >Ну вот видишь, уже кое что работает :-) >Вообщем в конце выполнения команды удаленная система не выдает промпт, который ожидает >твой клиент, надо узнать что за промпт она выдает и сказать >клиенту что нужно ждать именно его. Эм...Вопрос - Как?
- Perl: добить скрипт....Как получить вывод?, NuINu, 10:00 , 17-Апр-07 (5)
>>>>>Привет ВСЕМ >>>>>Вот скрипт: >>>> >>>>Испльзуй >>>>@result = $t->cmd("show summary") >>>command timed-out at ./mpd_kill2.pl line 40 - это эта строка... >>Ну вот видишь, уже кое что работает :-) >>Вообщем в конце выполнения команды удаленная система не выдает промпт, который ожидает >>твой клиент, надо узнать что за промпт она выдает и сказать >>клиенту что нужно ждать именно его. > >Эм...Вопрос - Как? да как хочешь, можно так: $t->put($my_cmd); $ok = $t->waitfor("/$you_prompt/i"); if($ok) { } А можно так: $t = new Net::Telnet (Timeout => 10, Prompt => '/bash\$ $/'); $t->open("sparky"); $t->login($username, $passwd); @lines = $t->cmd($my_cmd, Prompt =>$you_prompt); Вообще изучи умную команду: perldoc Net::Telnet
|