Страница 1 из 1

Ограничения telnet клиентов

Добавлено: 2009-07-03 11:54:44
HEDG_SS
была тема
Натолкнулся на проблему ограничения какого-то буфера у телнета.
Задача : Подсоединиться через telnet к quagga 0.99.12 на FreeBSD 7.0 , получить список анонсируемых сетей от одного из нейборов.


1. При использовании NET::Telnet ограничение буфера в 64К, дальше вылетает ошибка

Код: Выделить всё

Connection closed by foreign host.
2. При конекте через телнет при помощи команды

Код: Выделить всё

( sleep 2 ; echo "pass" ; sleep 2 ; echo "show ip bgp neighbors x.x.x.x received-routes" ; sleep 10 ) | telnet 127.0.0.1 2605
Вылетает по ошибке

Код: Выделить всё

Connection closed by foreign host
Повисает ровно на той же строчке, т.е ограничение в теже 64К

3. При выполнении команд в ручную, телнет отрабатывает, но там идет постраничный вывод (Т.е. вывод такой же, как с использованием "| more").
Опять же вопрос почему отрабатывает по разному команда и когда этоже делаешь руками пошагово ?

4. С использованием expect

Код: Выделить всё

#!/usr/local/bin/expect -f
set timeout 30
spawn telnet 127.0.0.1 2605
match_max 10485760
expect "Password:"
send "pass"
send "show ip bgp neighbors x.x.x.x received-routes\r"
send "exit\r"
expect eof
Отрабатывает и вывод инфы на 128К
Ошибка вылета та же

Код: Выделить всё

Connection closed by foreign host.
Подскажите, почему это происходит ? :st: :st: :st:
Есть ли еще какие то клиенты телнет под FreeBSD ?

Re: Ограничения telnet клиентов

Добавлено: 2009-07-03 13:32:52
olexande
перенаправить результаты в отдельный файл и после уже этот файл построчно читать?

Re: Ограничения telnet клиентов

Добавлено: 2009-07-03 13:57:31
terminus
Есть ли еще какие то клиенты телнет под FreeBSD ?
nc ;-)
http://www.freebsd.org/cgi/man.cgi?quer ... ormat=html

Код: Выделить всё

nc hostname 23
тока это экстрим

Re: Ограничения telnet клиентов

Добавлено: 2009-07-03 14:47:48
HEDG_SS
olexande писал(а):перенаправить результаты в отдельный файл и после уже этот файл построчно читать?
В скрипте не получается. Запись идет только данных до ошибки.

P.S. использовал утилиту tee и сделал все действия вручную. Получил сохраненный файл. Это временное решение, т.к. нужно сделать скрипт, которй отрабатывал б автоматически в кроне...

Re: Ограничения telnet клиентов

Добавлено: 2009-07-04 0:30:00
olexande
Не совсем понимаю что ты делаешь ...

Как я понял - пытаешься соединиться по telnet и запустить команду выполнение, выводящую очень большой поток данных.
Результаты через ">>" без вывода на экран перенаправлять пробовал? Или тоже буфер переполняется?

А если запускать (вызывать) отдельным скриптом данную операцию и скриптом результат писать в файл не пробовал?..

Re: Ограничения telnet клиентов

Добавлено: 2009-07-04 11:17:20
HEDG_SS
olexande писал(а):Не совсем понимаю что ты делаешь ...

Как я понял - пытаешься соединиться по telnet и запустить команду выполнение, выводящую очень большой поток данных.
Результаты через ">>" без вывода на экран перенаправлять пробовал? Или тоже буфер переполняется?

А если запускать (вызывать) отдельным скриптом данную операцию и скриптом результат писать в файл не пробовал?..
Вы поняли абсолютно правильно .
Насчет перенаправления вывода, это результата не даст, т.к. поток данных прерывается и соответственно не все данные извлекаются :(

Код: Выделить всё

# ( sleep 2 ; echo "pass" ; sleep 2 ; echo "show ip bgp neighbors x.x.x.x received-routes" ; sleep 10 ) | telnet 127.0.0.1 2605 >> /nt.log
Connection closed by foreign host.


Кстати вопрос: Почему при выполнении набора команд вручную, автоматически включается вывод с использованием more, а в скрипте нет ? Как его включить в скрипте (надеюсь поможет...) ?

Re: Ограничения telnet клиентов

Добавлено: 2009-07-06 11:03:13
ISQman
проблема решена:

Код: Выделить всё

#!/usr/local/bin/expect -f                                                      
set timeout 30                                                                  
spawn telnet 127.0.0.1 2605                                                     
match_max 10485760                                                              
expect "Password:"                                                              
send "pass\r"                                           
send "terminal len 0\r"                                                         
send "show ip bgp neighbors ххх.х.хх.х received-routes\r"                     
expect "Total*"                                                                 
send "exit\r"                                                                   
expect eof

Re: Ограничения telnet клиентов

Добавлено: 2009-07-07 12:20:19
HEDG_SS
Все всем СПАСИБО, проблему решили :Yahoo!: :Yahoo!: :Yahoo!: !!!