• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

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
 

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
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.
 

Lukimoe

Fuji
Registriert
20.07.08
Beiträge
36
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 ;)
 

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
Terminal: which telnet -> Pfad mit angeben.
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
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.
 

Lukimoe

Fuji
Registriert
20.07.08
Beiträge
36
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 :)