Bekijk de volledige versie : Per SSH, script auf meinem Wl500gP auführen *automatisch*
Hallo zusammen,
ich habe folgende Idee.
Auf meinem Windows-Rechner hätte ich gerne einige Scripte, über die ich Befehle auf meinem Router ausführen kann.
Also ein Windows-Script was folgende Aufgaben erfüllt:
1. Per SSH Zugriff auf den Router (user,passwort eingeben)
2. Befehl ausführen
Alles natürlich automatisiert, ohne irgendwelche Eingabeaufforderung.
Hat jemand ne Idee?
Ich dachte an ein batch-file, nur leider finde ich keinen ssh-Befehl.
Danke schon mal für die Hilfe!
newbiefan
02-11-2008, 11:56
Hast Du ein Beispiel fuer eine sinnvolle Anwendung?
Ich wuerde da eher am Router ein Script ausfuehren, dann kannnst Du mit einem od. auch mehrere Befehle alles machen, sogar vollautomatisch von irgend welchen Abhaengigkeiten oder auch nur zeitgesteuert ueber cron.
Aber es geht auch anders herum: Sehe dir einmal die lynx docu genau an, lynx kann das Linux typische Piping, also sind vorher definierte Handlungen, Eingaben usw. moeglich. Damit sollte auch eine batch-datei unter Windows etwas anfangen koennen. Naja und dann geht natuerlich irgend eine Programmiersprache auch - siehe Router Control.
Du kannst mit perl, php usw auch alle denkbaren Ein und Ausgaben erstellen und automatisch am Router abarbeiten. Das erscheint mir sinnvoll und da gibt es bereits Anwendungen (siehe wlan-fan), ist es doch unabhaengig von irgend welchen Installationen und auch weitgehend sicher.
Hi,
Danke für die Antwort.
Beispiel:
Media-Server auf Knopfdruck starten/ausschalten.
Ich möchte mich nicht immer einloggen müssen um den Twonky zu starten, er muss aber auch nicht immer laufen.
Hast Du ein Script-Beispiel für mich?
Danke!
Hi,
restarten kannst Du den Twonkyserver mit:
http://192.168.1.1:9000/rpc/restart
und stoppen mit:
http://192.168.1.1:9000/rpc/stop
Nur hochfahren geht natürlich nicht, da der rpc nicht mehr läuft, wenn man den Server gestoppt hat.
Wenn man die Befehle an den InternetExplorer bindet und diese im Script unter Windows nutzt, sollten sich die oberen Befehle benutzen lassen.
Beispiel:
IEXPLORE.EXE http://192.168.1.1:9000/rpc/restart
Analog dazu könnte man Commando-Befehle per CGI an den Router senden, so wie man es manuell im Webinterface machen würde. Auf die schnelle kann ich Dir nur nicht sagen wie. Es müsste so oder so ähnlich gehen:
http://192.168.1.1/apply.cgi?SystemCmd=Befehl
Für "Befehl" muss dann der auszuführende Linux-Befehl angegeben werden.
Norbert
Hi,
Danke für die Tips.
Also die Twonky-sachen funktionieren.
Über das Webinterface
http://192.168.1.1/apply.cgi?SystemCmd=Befehl
funktioniert es teilweise. Ich kann halt nur Systemkommandos ausführen.
Wie erstelle ich denn z.B. ein Systemkommando zu folgendem Befehl:
/usr/local/etc/program
Außerdem muss dann immer user und pass von Hand eingetragen werden.
So wäre doch die Vorgehensweise, oder?
Gibt es nicht auch die Möglichkeit ein Script auf meinem Windows-PC zu schreiben was folgendes ausführen würde:
#an router anmelden
ssh 192.168.1.1
#user eintragen
user
#passwort eintragen
pass
#befehl ausführen
/usr/local/etc/program
#beenden
end
Danke!
newbiefan
03-11-2008, 20:03
also, da gibt es ein viel eleganteres Progi. Klar, ich gebe dir recht - wenn man ein Programm nicht braucht, soll es auch nicht am Router od. PC laufen - es verbraucht nur Resourcen.
Deshalb schaue dir die komplette xinet docu einmal (wirklich) genau an - da wirst du staunen - denn xinet kann viel mehr, als der blose Namen vermuten laesst.
Nimm z.Bspl. einen Streaming Server wie wizd, twonky, ushare usw. - od. vsftpd - viele Progis laufen 95% der Zeit umsonst- xinet startet dein progi erst, wenn du darauf zugreifst. Z.Bspl. Vsftpd ist nicht gestartet, greift jedoch jemand auf ftp port 21 zu, startet dir xinet den Dienst, ganz ohne Scripts oder anderen Tricks. Lediglich etwas lesen ist natuerlich angesagt.
Dieses Prinzip laesst sich auf viele Programme anwenden und ist zudem sehr elegant.
Die von dir gewuenschte Vorgangsweise wuerde ich niemals vorschlagen, denn dann hast du ein Problem geschaffen - ein Sicherheitsproblem.
Nimm doch einfach Telnet od. Putty und lege dir einen Link am Desktop an, das geht doch schnell. Fall du nur ein Progi starten willst wie Webserver, usw, kannst du alles was an irgend einem Port lauscht mit xinet loesen.
Ich verstehe noch immer nicht den Sinn der Sache - was hilft es, wenn ich irgend ein Programm am Asus ausfuehren kann aber dafuer muss ich am PC ein Programm starten - da sehe ich keinen Vorteil oder Erleichterung, im Gegenteil - mache ich das am Asus, kann ich ganz einfach komplexe Vorgaenge in einem Script abarbeiten lassen.
LG
Hi,
Danke für die ausführliche Antwort!
An xinet habe ich noch gar nicht gedacht. Das klingt nach einer super Idee.
Kurz warum:
Der Twonkyserver (z.B.) soll nicht immer laufen sondern nur wenn er gebraucht wird, ich hatte mir gedacht den Server von außen starten zu können (Wlan-PDA, Rechner etc.). Klar kann ich mich auch einloggen, per script finde ich es komfortabler (Sicherheitslücke mal nicht betrachtet).
Aber xinet nimmt mir die Aufgaben ja gänzlich ab. Du meinst also ich kann xinet so konfigurieren, dass wenn jemand auf den Medienserver zugreifen will (über einen bestimmten port) xinet den twonky startet??
Da muss icn mich mal ins man einlesen.
Danke!
cool mir war die funktion auch nicht so klar, aber heist das ganze nicht xinetd??? Zumindest gibts auf dem router nur solch ein packet.
@carterb ach jah auf einem linux computer liesse sich Deine ursprüngliche Idee leicht umsetzen.
In windows müsstest du mal nach nen command zeilen basierenden ssh client suchen. Den wie in wengis howto schon steht kann man anstatt username und password als login auch certificate erstellen. Das noch mit ner .bat datei verknüpft sollte völlig automatisch ablaufen dann.
newbiefan
04-11-2008, 18:29
cool mir war die funktion auch nicht so klar, aber heist das ganze nicht xinetd??? Zumindest gibts auf dem router nur solch ein packet.
xinet steht fuer extended Internet Service und das d steht fuer daemon.
Es hat sich eingebuergert, dass unter xinetd der Daemon verstanden wird.
So gesehen hast du natuerlich recht.
Jedenfalls stehen die wichtigsten Services unter /etc/services - diese kann man natuerlich erweitern. Nimmt man Wengis howto, steht ein gutes Beispiel drinnen - swat. Swat benutzt Port 901 und wird ueber xinetd gestartet. Im Internet gibt es unzaehlige Beispiele fuer alle moeglichen Progis wie vsftpd usw.
Und da Stream-Server ueber einen Port streamen, muss auch xinetd fuer einen Start moeglich sein.
Sobald ich mein Cifs-Problem geloest habe, werde ich ushare mit xinetd versuchen, bzw. ein Optimierungsprojekt (mit xinetd) fuer meinen Asus starten. Asterisk habe ich bereits wieder aus Lastgruenden entfernt - der Asus geht mir zu stark in die Knie......deshalb die vielen Fritzboxen....aber die sind einsame Klasse :)