The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Вызов скрипта expect из php"
Отправлено rebrovsv, 28-Май-12 18:51 
>[оверквотинг удален]
> И так тоже не работает (в общем я уже испробовал кучу вариаций.
> все, что в гугле смог найти по поводу... ниче не помогает)
> :-(
> В общем-то все решилось несколько иным способом. Оказалось, что в железяке (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"

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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