Попытка перезагрузить ADSL модем с помощью сценария ожидаемого

1413
Hamed Kamrava

Я пытаюсь создать скрипт Linux, который может перезагрузить мой модем ASDL.

Вот мой rebootModem.expфайл:

#!/usr/bin/expect  set userName admin set pass admin set command reboot #It is modem reboot command  set timeout 20 spawn telnet 192.168.1.1 expect "Login: " send "$userName\r" expect "Password: " send "$pass\r" send "$command\r" 

Когда я запускаю этот файл, он получает меня:

spawn telnet 192.168.1.1 Trying 192.168.1.1... Connected to 192.168.1.1. Escape character is '^]'. BCM96338 ADSL Router Login: admin Password: [kamix@localhost ~]$  

Кажется send "$command\r", не работает!

Что мне здесь не хватает?

PS:

rebootModem.expявляется исполняемым ( +x).

0
Может быть, вам нужно дождаться приглашения или чего-то еще, прежде чем отправлять эту перезагрузку? Может быть, вам нужен перевод строки после перезагрузки? a CVn 9 лет назад 1
Первый пост отредактирован. Выход изменился. Посмотри пожалуйста Hamed Kamrava 9 лет назад 0
Я не понимаю, почему вы думаете, что вам нужно взаимодействовать. Можете ли вы попробовать без этого? MariusMatutiae 9 лет назад 1

1 ответ на вопрос

0
Hamed Kamrava

Solution :

interact must be used after reboot command :

#!/usr/bin/expect set userName admin set pass admin set command reboot set timeout 20 spawn telnet 192.168.1.1 expect "Login:" send "$userName\r" expect "Password:" send "$pass\r" expect ">" send "$command\r" interact 
Я бы предположил, что вместо этого можно было бы ожидать «ожидаем eof» glenn jackman 9 лет назад 1
Можете ли вы показать мне пример? Hamed Kamrava 9 лет назад 0
Вместо «взаимодействуй», поставь «ожидай eof» glenn jackman 9 лет назад 0

Похожие вопросы