Versuch, das ADSL-Modem über das Expect-Skript neu zu starten

1516
Hamed Kamrava

Ich versuche, ein Linux-Skript zu erstellen, das mein ASDL-Modem neu starten kann.

Hier ist meine rebootModem.expDatei:

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

Wenn ich diese Datei starte, bekomme ich Folgendes:

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 ~]$  

Es scheint send "$command\r"nicht zu funktionieren !.

Was fehlt mir hier?

PS:

rebootModem.expist ausführbar ( +x).

0
Vielleicht müssen Sie auf eine Aufforderung oder etwas warten, bevor Sie den Neustart senden. Vielleicht brauchen Sie nach dem "Neustart" einen Newline? a CVn vor 10 Jahren 1
Erster Beitrag bearbeitet Ausgabe hat sich geändert. Schauen Sie sich bitte um Hamed Kamrava vor 10 Jahren 0
Ich verstehe nicht, warum Sie denken, Sie brauchen Interaktion. Kannst du es ohne versuchen? MariusMatutiae vor 10 Jahren 1

1 Antwort auf die Frage

0
Hamed Kamrava

Lösung:

interact muss nach dem Neustartbefehl verwendet werden:

#!/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 
Ich würde vorschlagen, dass Eof stattdessen verwendet werden könnte glenn jackman vor 10 Jahren 1
Kannst du mir ein Beispiel zeigen? Hamed Kamrava vor 10 Jahren 0
Anstelle von "Interaktion" setzen Sie "Expect Eof" glenn jackman vor 10 Jahren 0