The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Perl: добить скрипт....Как получить вывод?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Perl: добить скрипт....Как получить вывод?"  
Сообщение от weldpua2008 email(ok) on 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ХХХ] можно вводить команды

Заранее Спасибо

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Perl: добить скрипт....Как получить вывод?"  
Сообщение от NuINu (??) on 13-Апр-07, 09:39 
>Привет ВСЕМ
>Вот скрипт:

Испльзуй
@result = $t->cmd("show summary")

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Perl: добить скрипт....Как получить вывод?"  
Сообщение от weldpua2008 email(??) on 14-Апр-07, 00:46 
>>Привет ВСЕМ
>>Вот скрипт:
>
>Испльзуй
>@result = $t->cmd("show summary")
command timed-out at ./mpd_kill2.pl line 40 - это эта строка...


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Perl: добить скрипт....Как получить вывод?"  
Сообщение от NuINu (??) on 14-Апр-07, 22:10 
>>>Привет ВСЕМ
>>>Вот скрипт:
>>
>>Испльзуй
>>@result = $t->cmd("show summary")
>command timed-out at ./mpd_kill2.pl line 40 - это эта строка...
Ну вот видишь, уже кое что работает :-)
Вообщем в конце выполнения команды удаленная система не выдает промпт, который ожидает твой клиент, надо узнать что за промпт она выдает и сказать клиенту что нужно ждать именно его.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Perl: добить скрипт....Как получить вывод?"  
Сообщение от weldpua2008 email(ok) on 16-Апр-07, 00:41 
>>>>Привет ВСЕМ
>>>>Вот скрипт:
>>>
>>>Испльзуй
>>>@result = $t->cmd("show summary")
>>command timed-out at ./mpd_kill2.pl line 40 - это эта строка...
>Ну вот видишь, уже кое что работает :-)
>Вообщем в конце выполнения команды удаленная система не выдает промпт, который ожидает
>твой клиент, надо узнать что за промпт она выдает и сказать
>клиенту что нужно ждать именно его.

Эм...Вопрос - Как?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Perl: добить скрипт....Как получить вывод?"  
Сообщение от NuINu (??) on 17-Апр-07, 10:00 
>>>>>Привет ВСЕМ
>>>>>Вот скрипт:
>>>>
>>>>Испльзуй
>>>>@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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру