LINUX Server von D-BOX auf ruterfahren

Digital Recording
usul

LINUX Server von D-BOX auf ruterfahren

Beitrag von usul »

So nun hab ich auch nen Filerserver. Da ich allerdings nicht so extrem häufig aufnehme möchte ich ihn gerne bei längerer nichtbenutzung ausschalten. Den Stom für den Rechner vom Wohnzimmer aus auszuschalten ist kein Problem. Aber um ihn Runterzufahren jedesmal meinen Arbeits PC hochzufahren ist einwenig aufwendig.

Von der D-BOX per Telnet auf den Server einloggen und HALT eingeben geht wunderbar, aber wie kann man das in ein Script packen das man per Featuremenü aktiviert?

Ich habe probiert die Tastatureingaben per umleitung zum Telnet befehl umzuleiten (so wie ich es von Windows aus kenne). Aber sowas scheint unter LINUX nicht zu funktionieren.

Also eine Textdatei namens cmd.txt mit dem Inhalt:
----
<USER>
<USERPASSWORT>
su
<ROOTPASSWORT>
halt
----

(wobei <xxx> natürlich bei mir der Reale Text waren.)


dann telnet 192.168.0.20 < cmd.txt

allerdings beendet sich dann telnet sofort und nixchts passiert. Ich sehe auch keine ausgabe auf der Konsole.

Hat jeman von den LINUX Profies hier ein Tipp für mich?

cu
usul
tetzlav
Einsteiger
Einsteiger
Beiträge: 131
Registriert: Dienstag 6. April 2004, 12:08

Re: LINUX Server von D-BOX auf ruterfahren

Beitrag von tetzlav »

usul hat geschrieben:[...]
Ich habe probiert die Tastatureingaben per umleitung zum Telnet befehl umzuleiten (so wie ich es von Windows aus kenne). Aber sowas scheint unter LINUX nicht zu funktionieren.

Also eine Textdatei namens cmd.txt mit dem Inhalt:
----
<USER>
<USERPASSWORT>
su
<ROOTPASSWORT>
halt
----

(wobei <xxx> natürlich bei mir der Reale Text waren.)


dann telnet 192.168.0.20 < cmd.txt

allerdings beendet sich dann telnet sofort und nixchts passiert. Ich sehe auch keine ausgabe auf der Konsole.
netcat (alias nc) dürfte dein Freund werden! Ist nur leider in aktuellen Images nicht enthalten. Ich kann dir aber auch bei bedarf eine busybox mit nc zukommen lassen!?

das ganze sieht dann so aus:

Code: Alles auswählen

{ echo "user"; echo "passwort"; echo "befehl"; echo "quit"; } | nc serverip  port  
bzw.

Code: Alles auswählen

cat datei | nc serverip port
hoffe geholfen zu haben...

Gruß
tetzlav
usul

Re: LINUX Server von D-BOX auf ruterfahren

Beitrag von usul »

tetzlav hat geschrieben: netcat (alias nc) dürfte dein Freund werden! Ist nur leider in aktuellen Images nicht enthalten. Ich kann dir aber auch bei bedarf eine busybox mit nc zukommen lassen!?
Das wäre klasse. Ich schick die meine email adresse per pm.

tetzlav hat geschrieben: das ganze sieht dann so aus:

Code: Alles auswählen

{ echo "user"; echo "passwort"; echo "befehl"; echo "quit"; } | nc serverip  port  
bzw.

Code: Alles auswählen

cat datei | nc serverip port
Wobei port der Telnet port ist, oder?

tetzlav hat geschrieben: hoffe geholfen zu haben...
sicher doch, besten Dank auch

usul
usul

Beitrag von usul »

@tetzlav: Danke für die busybox

Leider scheint es nicht zu helfen. Es sieht so aus als ob die Kommandos gesendet werden bevor der Zielrechner sie lesen will.
Als Ergebnis passiert beim Zielrechner nix, es komman an der Konsole keine Antworten und ich lande auf irgendeiner Kommandozeile.


auch ein Test (als shellscipt) mit:

telnet <ip> << EOL
<befehl1>
<befehl2>
<...>
EOL

klappt nicht.

kann man den Server irgendwie so konfigurieren das man ihn ohne ihn herrunterzufahren ausschalten kann ohne das man beim nächsten Start mit Monitor und Tasatur zu Rechner latschen muß um das Dataisystem zu reparieren :-( ?

cu
usul
tetzlav
Einsteiger
Einsteiger
Beiträge: 131
Registriert: Dienstag 6. April 2004, 12:08

Beitrag von tetzlav »

usul hat geschrieben:[...]Leider scheint es nicht zu helfen. Es sieht so aus als ob die Kommandos gesendet werden bevor der Zielrechner sie lesen will.
kannst ja noch ein sleep 1 zwichen den einzelnen Befehlen und der Anmeldung einbauen, damit der Server etwas mehr Zeit hat. ich kanns leider nicht ausbrobieren, bin im Moment nicht zu Hause...
usul hat geschrieben:kann man den Server irgendwie so konfigurieren das man ihn ohne ihn herrunterzufahren ausschalten kann ohne das man beim nächsten Start mit Monitor und Tasatur zu Rechner latschen muß um das Dataisystem zu reparieren :-( ?
hm, deßhalb hat man ja doch das "Runterfahren" erfunden :D
nee, aber mal im ernst; es gab da noch nen Lösungsansatz mit einer Dummy-Datei auf der Freigabe des Servers, wo der Server in gewissen Abstanden überprüft ob die Datei noch vorhanden ist und wenn nicht sich dann runterfährt, da heißt du kannst mit einem Script diese Datei in /mnt/irgendwas löschen und der Server fährt runter. Finde Momentan leider diesen Threat nicht mehr!?

Gruß
tetzlav
usul

Beitrag von usul »

tetzlav hat geschrieben:
usul hat geschrieben:[...]Leider scheint es nicht zu helfen. Es sieht so aus als ob die Kommandos gesendet werden bevor der Zielrechner sie lesen will.
kannst ja noch ein sleep 1 zwichen den einzelnen Befehlen und der Anmeldung einbauen, damit der Server etwas mehr Zeit hat. ich kanns leider nicht ausbrobieren, bin im Moment nicht zu Hause...
Das geht glaube ich irgendwie nicht.
tetzlav hat geschrieben: nee, aber mal im ernst; es gab da noch nen Lösungsansatz mit einer Dummy-Datei auf der Freigabe des Servers, wo der Server in gewissen Abstanden überprüft ob die Datei noch vorhanden ist und wenn nicht sich dann runterfährt, da heißt du kannst mit einem Script diese Datei in /mnt/irgendwas löschen und der Server fährt runter. Finde Momentan leider diesen Threat nicht mehr!?

Gib es unter LINUX dann den "Hallo Kernel, wenn diese Datei verschwinted ruf mich auf" Befehl (Da ich es von Windows kenne wird es das in LINUX wahrscheinlich nicht geben ;-) oder muß das ein Spript in ner Dauerschleife Pollen?

cu
us`irgendwie ist mar das alles sehr suspekt`ul
tha_haze
Einsteiger
Einsteiger
Beiträge: 249
Registriert: Samstag 8. Mai 2004, 20:14

Beitrag von tha_haze »

um zu überprüfen ob eine datei noch existiert kannst du folgenden code in ein shell-script schreiben

Code: Alles auswählen

rm /dbox/.shutdownnow 2>/dev/null

if [ $? -eq 0 ] 
then
 wget -q http://dboxip/control/message?popup=Server%20Shutdown!
 shutdown
fi
und dieses shellscript anschließend per cron jede minute aufrufen lassen

----edit----
mein konzept basiert darauf, dass ich per plugin auf der box ein script aufrufe, welches mir eine datei namens .shutdownnow im gemountetem verz. anlegt. der server fährt dann entsprechend runter wenn diese datei existiert. demnach ist das obige script auch auf dieses ziel hin ausgerichtet, d.h. der server fährt runter sobald diese datei angelegt ist, und nicht sobald eine datei verschwindet (hab ich erst nachher bemerkt, das es andersrum gemeint war)
Zuletzt geändert von tha_haze am Mittwoch 21. Juli 2004, 21:27, insgesamt 1-mal geändert.
tetzlav
Einsteiger
Einsteiger
Beiträge: 131
Registriert: Dienstag 6. April 2004, 12:08

Beitrag von tetzlav »

usul hat geschrieben:Das geht glaube ich irgendwie nicht.
...also ich kann meine Box mit einem

Code: Alles auswählen

{ echo "root"; sleep 1; echo "dbox2"; sleep 1; echo "reboot"; } | nc 192.168.2.5 23
zum Neustart bewegen. Mein Server spricht leider kein telnet.
usul hat geschrieben:Gib es unter LINUX dann den "Hallo Kernel, wenn diese Datei verschwinted ruf mich auf" Befehl (Da ich es von Windows kenne wird es das in LINUX wahrscheinlich nicht geben ;-) oder muß das ein Spript in ner Dauerschleife Pollen?
ein Cronjob könnte das übernehmen! aber such dir einfach mal diesen Threat - er betrat auf jeden Fall genau dein Problem!

Gruß
tetzlav
usul

Beitrag von usul »

tetzlav hat geschrieben:
usul hat geschrieben:Das geht glaube ich irgendwie nicht.
...also ich kann meine Box mit einem

Code: Alles auswählen

{ echo "root"; sleep 1; echo "dbox2"; sleep 1; echo "reboot"; } | nc 192.168.2.5 23
zum Neustart bewegen. Mein Server spricht leider kein telnet.
Tja, ich nicht. Un irgendwie kommen da auch keine Fehlermeldungen. Na was solls denn...
tetzlav hat geschrieben: ein Cronjob könnte das übernehmen! aber such dir einfach mal diesen Threat - er betrat auf jeden Fall genau dein Problem!
... jetzt mache ich es mit dem Cronjob, auch wenn es wehtut.


Was mir noch einfiel: Mann könnte ja auch nen webserver auf dem Server starten und dann bei aufruf einer URL per cgi den Server runterfahren.

Aber das tue ich mir mit meinen beschränkten LINUX erfahrunen noch nicht an.

Mit besten dank an tetzlav und tha_haze

cu
usul
tetzlav
Einsteiger
Einsteiger
Beiträge: 131
Registriert: Dienstag 6. April 2004, 12:08

Beitrag von tetzlav »

usul hat geschrieben:
tetzlav hat geschrieben:...also ich kann meine Box mit einem

Code: Alles auswählen

{ echo "root"; sleep 1; echo "dbox2"; sleep 1; echo "reboot"; } | nc 192.168.2.5 23
zum Neustart bewegen.
Tja, ich nicht. Un irgendwie kommen da auch keine Fehlermeldungen. Na was solls denn...
die sleep-Zeiten etwas zu variieren hast du sicherlich schon probiert!?
usul hat geschrieben:Was mir noch einfiel: Mann könnte ja auch nen webserver auf dem Server starten und dann bei aufruf einer URL per cgi den Server runterfahren.


Aber das tue ich mir mit meinen beschränkten LINUX erfahrunen noch nicht an.
"die perfekte Lösung" kommt sicherlich noch irgendwann :wink: - spätestens dann wenn du dich auf Linux etwas mehr zu Hause fühlst und du dich von der unschlagbaren Genialität eines Linux-Betriebssystem überzeugt hast!
Ich bin auch ganz allmählich in die Linuxwelt geschlittert - aber ich möchte nicht mehr zurück! (vllt. noch zum MAC, aber die sind so verdammt SCHICK & TEUER! :roll: - so jetzt reichts aber mit OT-Gelabere!!! :wink:)

Gruß
tetzlav
XhorRah
Interessierter
Interessierter
Beiträge: 70
Registriert: Donnerstag 1. April 2004, 16:52

Beitrag von XhorRah »

also da kann ich tetzlav nur recht geben...
Netcat rockt gewaltig... damit kann man windows sowieso linux pcs probemlos runterfahren.... :)

einfach netcat auf dem server als listenserver starten...

auf windows zumbeispiel so:
nc -l -L -d -p 23 -t -e cmd.exe

dann nur noch mit nc von der box drauf connecten und los gehts :)

thats it :)

liebe Grüße Xhor :)
tetzlav
Einsteiger
Einsteiger
Beiträge: 131
Registriert: Dienstag 6. April 2004, 12:08

Beitrag von tetzlav »

XhorRah hat geschrieben:nc -l -L -d -p 23 -t -e cmd.exe
...da hat wohl jmd. die neue c't gelesen!? :lol:

Gruß
tetzlav