• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Telnet Befehle per Shell Script ausführen

Lukimoe

Fuji
Registriert
20.07.08
Beiträge
36
Hi,
ich weiß es gab bestimmt schon haufenweise Beiträge von Leuten die keine Ahnung von Shell Scripts haben und irgendwas brauchen.
Leider bin ich mit der Suche nicht weitergekommen.

Ich schicke ab und zu einen Befehl per telnet an meinen Router, im Terminal geht das auch ganz easy mit
> telnet ip
> passwort

Jetzt habe ich schon mal n bissl rumprobiern um das zu automatisieren, aber ich krieg es einfach nicht hin,
dass das Passwort auch gleich mit übergeben wird.

Kann ich dem telnet Befehl nicht das Passwort gleich noch mit anhängen?

Im Prinzip beschränkt sich das ganze fürs erste auf
> telnet 192.168.xxx.xx
> passwort
> do/o/m/d
> exit

Danke schonmal,
Lukas
 
Du kannst das Passwort nicht direkt übergeben. Will dein Router denn keinen User haben?
Normalerweise geht das:
telnet host:
L(l)ogin: Nametipper
P(p)assword: Passtipper
Sowas kann man mit Expect (z.B.) machen. Das sollte sich auch über den Automator realisieren lassen.
Wenn du einen Reconnect machen willst, dann schau doch einmal nach, ob man das nicht auch über die Webschnittstelle machen kann.
 
Hi,

das mit expect klingt gut, hab bissl was dazu gefunden.

Code:
#! /usr/bin/expect
telnet 192.168.xxx.xx
expect "Password: " {send "********\r"}

erzeugt folgenden Fehler:
Code:
/Users/Lukas/Desktop/disconnect.command ; exit;
Lukas-iMac-3:~ Lukas$ /Users/Lukas/Desktop/disconnect.command ; exit;
invalid command name "telnet"
    while executing
"telnet 192.168.xxx.xx"
    (file "/Users/Lukas/Desktop/disconnect.command" line 2)
logout

[Prozess beendet]

Any ideas?
Normalerweise nimmt er den telnet Befehl so...

Ja Webinterface würde glaube ich gehen, manuell über telnet geht ja auch schon ich würds nur gern automatisieren.
Der Disconnect dient hier als Beispiel, weils halt nur ein kurzer Befehl ist ;)
 
Vielleicht schaust Du mal ob Dein Router SSH mit Public Key Authentifizierung kann. Dann könntest Du Dir u.U. den Passwort Kram sparen - ansonsten wäre auch "except" sicher das Tool der Wahl.
 
Hab eine Lösung gefunden:

Code:
#!/bin/bash
(
echo "password";
sleep 1;
echo -e "Befehl\r";
sleep 3;
echo -e "exit\r"
) | telnet 192.168.xxx.xx

Danke für die Tipps :)