Натолкнулся на проблему ограничения какого-то буфера у телнета.
Задача : Подсоединиться через telnet к quagga 0.99.12 на FreeBSD 7.0 , получить список анонсируемых сетей от одного из нейборов.
1. При использовании NET::Telnet ограничение буфера в 64К, дальше вылетает ошибка
Код: Выделить всё
Connection closed by foreign host.
Код: Выделить всё
( 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
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
Ошибка вылета та же
Код: Выделить всё
Connection closed by foreign host.
Есть ли еще какие то клиенты телнет под FreeBSD ?