>[оверквотинг удален]
> И так тоже не работает (в общем я уже испробовал кучу вариаций.
> все, что в гугле смог найти по поводу... ниче не помогает)
> :-(
> В общем-то все решилось несколько иным способом. Оказалось, что в железяке (CMTS
> casa systems) есть аналог cisco-вской команды "terminal length 0" - "page-off"
> (из-за такого непохожего на цисковский аналог названия я ее сразу и
> не заметил). В общем, команда отключает постраничный вывод последующих команд, что
> мне, в общем-то, и нужно.
> Sproot, спасибо Вам огромное за столько убитого на меня и мой expect-скрипт
> (будь он неладен) времени.быть может кому-то будет полезно
возникла похожая проблема
нужно было через веб-браузер вызывать исполнение expect скрипта, который бы собирал на маршрутизаторе дамп и забирал его на веб-сервер для дальнейшей обработки
при запуске php скрипта через консоль все обрабатывалось отлично. При вызове через веб - болты, nginx не дожидался ответа от php (апач, пхп-мод) и давал отбой по таймауту
Пол дня ломал голову, перерыл все мыслимые-немыслимые конфиги
все оказалось на поверхности:
в консоли скрипт запускал из под рута, и конектился спокойно по ssh - все работает.
при вызове же через веб, процесс запускался от имени апача, и требовалось принять публичный ключ от устройства. Это мой скрипт не обрабатывал и загибался в состоянии ожидания предложения ввести пароль. А устройство ожидало, пока апач примет ключ.
Для решения либо 1 раз нужно было законектится из под apache по ssh к устройству, что бы apache созранил у себя ключик и далее подключался уже без вопросов.
Ниже мой скрипт:
#!/usr/bin/expect -f
spawn ssh admin@***.***.***.***
#ниже команды, что бы принять ключ, 1 раз выполнил потом закоментил
#expect "Are you sure you want to continue connecting (yes/no)?"
#send "yes\r"
#просим устройство(microtic routerBoard) собрать дамп
expect "admin@***.***.***.***'s password:"
send "*******\r"
expect login
expect eof
send "tool torch src-address=0.0.0.0/0 dst-address=0.0.0.0/0 \"ether4\"\r"
expect eof
send "D"
sleep 1
send "Q"
expect eof
send "quit\r"
expect eof
# забираем дамп с устройства на веб сервер
spawn ftp ***.***.***.***
expect "Name (***.***.***.***:***):"
send "adminftp\r"
expect "Password:"
send "*******\r"
expect "ftp>"
send "get dump.txt /var/www/dump.txt\r"
expect "ftp>"
send "quit\r"