Спроба перезавантажити модем ADSL через сценарій очікування


0

Я намагаюся створити сценарій 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).


1
Можливо, вам доведеться почекати підказки чи чогось, перш ніж надіслати це reboot? Можливо, вам потрібен новий рядок після reboot?
CVn

Перше повідомлення відредаговано. Вихід змінився. Погляньте будь ласка
Хамед Камрава

1
Я не розумію, чому ви думаєте, що вам потрібно взаємодіяти. Можна спробувати без цього?
MariusMatutiae

Відповіді:


0

Рішення:

взаємодія повинна бути використана після команди перезавантаження:

#!/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

1
Я б припустив, expect eofщо замість цього можна використовувати
Глен Джекман

Ви можете мені показати приклад?
Хамед Камрава

На зміну interact, поставилиexpect eof
glenn jackman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.