PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Telnet login mit expect automatisieren


Gast
2011-01-15, 10:58:25
Hallo,
ich würde gerne von meinem Mac aus per Doppelklick bestimmte Befehle auf meinem DD-WRT Router ausführen. Dazu möchte ich mich per Telnet (keine Sorge, nur lokal im LAN) mit expect anmelden. Das ganze funktioniert schon so halb, aber leider beendet sich expect ohne Fehlermeldung immer dann, wenn die Kommandozeile vom Router erscheint.

Hier mein expect-Skript:


#!/usr/bin/expect -f

set timeout 100

set name 192.168.2.1
set user root
set password pw

spawn telnet $name

expect "login:"
send "$user\r"
expect "Password:"
send "$password\r"

expect "#"
send "hello"


Der Login wird ohne Probleme durchgeführt, dann antwortet der Server mit der DD-WRT Willkommensmessage und


BusyBox v1.13.4 (2010-08-07 01:40:36 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

root@DD-WRT:~#


Aus irgendwelchen Gründen bricht expect hier ab und ich habe meine lokale Kommandozeile wieder. Wenn ich das 'send "hello"' durch interact ersetze, bleibt expect auf der Router-Eingabe.
Irgendwelche Ideen? Vielen Dank!