HEDG Posted July 3, 2009 Posted July 3, 2009 Натолкнулся на проблему ограничения какого-то буфера у телнета. Задача : Подсоединиться через 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. Подскажите, почему это происходит ? Есть ли еще какие то клиенты телнет под FreeBSD ? Вставить ник Quote
mikevlz Posted July 3, 2009 Posted July 3, 2009 terminal len <0-512> Number of lines on screen (0 for no pausing) не оно? Вставить ник Quote
HEDG Posted July 3, 2009 Author Posted July 3, 2009 terminal-length <0-512> {} Установить длину строки терминала <0-512>. Эта команда конфигурации применяется ко всем интерфейсам VTY. Я думаю врядли, этот параметр повлияет. Пробовал, результата не дало :( Вставить ник Quote
mikevlz Posted July 4, 2009 Posted July 4, 2009 именно 0 пробовал ставить в начале сессии? оно должно переставать ждать ввода на многостраничных результатах Вставить ник Quote
zlobar Posted July 4, 2009 Posted July 4, 2009 4. С использованием expect #!/usr/local/bin/expect -fset timeout 30 spawn telnet 127.0.0.1 2605 match_max 10485760 expect "Password:" send "pass" send "terminal len 0" send "show ip bgp neighbors x.x.x.x received-routes\r" send "exit\r" expect eof У меня вылетает с "Connection closed by foreign host" на 268K. Вставить ник Quote
ISQman Posted July 6, 2009 Posted July 6, 2009 (edited) проблема решена: #!/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 Edited July 6, 2009 by ISQman Вставить ник Quote
HEDG Posted July 7, 2009 Author Posted July 7, 2009 2mikevlz ОГРОМНОЕ СПАСИБО!! Действительно помогло :)) Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.