Вопрос по telnet, expect, shell – Сценарий оболочки успешного входа в Telnet, как после этого выдавать команды?

2
#!/usr/bin/expect -f
spawn telnet 10.21.0.17
expect -re "login"
send "admin\n"
expect -re "Password"
send "supersecurepassword\n"
interact

работает как положено. После запуска скрипта я вошел в систему по любому IP-адресу telent, который я использовал в строкеspawn telnet 10.21.0.17

Затем он бросает меня в оболочку AP

WAP->

Как мне выполнить дальнейшие команды? Я хотел бы выпуститьreboot а потом может бытьsleep 20 и наконецexit.

Я пытался использоватьecho а такжеexpect без успеха. Я также пытался удалитьinteract без успеха. Есть идеи?

Также,interact не будет использоваться, потому что тогда будет ждать взаимодействия с пользователем:stackoverflow.com/questions/7789710/… TryTryAgain
Как видно из резолюции ниже,send использовалась команда, но проблема была в том, что мне нужно былоsleep как раз перед этой первой командой оболочки. Спасибо за ваш быстрый комментарий, хотя ... всегда ценится. TryTryAgain
Извините, я тоже это попробовал. Я забыл упомянуть.echo send expect а такжеsend все ничего не делают. Просто оставляет меня в WAP - & gt; незамедлительный. TryTryAgain
Почему бы и нетsend-А как ты сделал для имени пользователя и пароля? Я в замешательстве ... sarnold

Ваш Ответ

1   ответ
2

Это было решено простым добавлениемsleep передexpectи конечноне включаяinteractхорошо работает следующее:

#!/usr/bin/expect -f
spawn telnet 10.21.0.17
expect -re "login"
send "admin\n"
expect -re "Password"
send "supersecurepassword\n"
sleep 5
expect "WAP"
send "reboot\n"
send "exit\n"

Для справки, это было использовано для автоматизации перезагрузки на беспроводной точке доступа D-Link DAP-2590. Теперь, когда я это знаю, я могу использовать это для других целей: для смены паролей и т. Д. Надеюсь, это поможет кому-то еще в будущем.

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