ubuntuusers.de

Server per Script fernstarten und herunterfahren

Status: Ungelöst | Ubuntu-Version: Server 8.10 (Intrepid Ibex)
Antworten |

Cabrio-Freak

Anmeldungsdatum:
9. Juli 2008

Beiträge: 55

Wohnort: Wismar

Hallo zusammen,

Ich habe vor kurzem einen Home Server bei mir zu Hause eingerichtet. Diesen wuerde ich gern per Icon auf meinem Desktop vom Client aus hoch- bzw. herunterfahren koennen. Ich stelle mir das folgendermassen vor:

Icon wird geklickt(Script gestartet) -Pruefung ob der Server an(online) oder aus(offline) ist, z.B. per Ping auf die IP.

Wenn Server offline: * Server wird per

wakeonlan 192.168.2.xxx

hochgefahren

Wenn Server online: *Kurze Meldung "Server is online. Shutdown Server?" "Yes" "No"

Bei "Yes" * Server wird per ssh und

sudo halt now

heruntergefahren

Ich habe ssh und wakeonlan schon am laufen und kann die Funktionen manuell im Terminal ausfuehren. Ich moechte das ganze jetzt automatisieren. Wie kann man sowas realisieren? Ich habe leider noch keine Erfahrung mit Programmierung oder Scripten. Gibt es so etwas vielleicht schon irgendwo?

Vielen Dank.

Jay-Low-Jason

Avatar von Jay-Low-Jason

Anmeldungsdatum:
2. April 2007

Beiträge: 393

Wohnort: Die Stadt mit der zweithöchsten Kneipendichte

Hallo,

Die Dialoge könntest du beispielsweise mit Zenity realisieren. Bisschen mehr dazu findest du z.B. hier: http://www.fedorawiki.de/index.php/Zenity

Ansonsten sollte das eigentlich relativ einfach zu lösen sein. Im Wiki Shell findest du links zu Tutorials wie man in Shell programmiert.

Bisschen Pseudo-Code zum start...

if ping -q -c5 "Server-IP"; then 
 zenity-frage "server-läuft was nun?"
else zentiy-frage "server-läut nicht was nun?"
fi

melc

Anmeldungsdatum:
28. Dezember 2008

Beiträge: 181

Wohnort: Karlsruhe

Zum Herunterfahren des Server kannst du auf dem Server einen Nutzer ohne Passwort anlegen, diesem die Rechte zum Herunterfahren des Rechners und zum Anmelden über SSH per Public-Key geben und bei der Anmeldung dann den Servers herunterfahren:

sudo adduser --disabled-login nutzer
sudo visudo

Dort in die letzte Zeile nutzer <servername>= NOPASSWD: /sbin/shutdown -P now eintragen und Editor wieder verlassen. Mit ssh-keygen ein neues Schlüsselpaar ohne Passwort erzeugen, den privaten Teil auf deinem Client und den öffentlichen Teil in /home/nutzer/.ssh/authorized_keys ablegen (siehe auch SSH (Abschnitt „Authentifizierung-ueber-Public-Keys“)). Vor den Schlüssel in /home/nutzer/.ssh/authorized_keys noch den Befehl command="/usr/bin/sudo /sbin/shutdown -P now",no-pty,no-port-forwarding,no-X11-forwarding stellen.

Wenn du dich jetzt vom Client anmeldest (ssh -T -i <Schlüssel> nutzer@<servername>) wird der Server heruntergefahren. Wenn ich oben nichts vergessen habe, ist der ungeschützte Schlüssel zu nichts weiter zu gebrauchen, als den Server herunterzufahren.

Wie du das dazugehörige Skript schreibst kannst du im entsprechenden Forum nachfragen, da dies mit Serverdiensten nichts zu tun hat.

Cabrio-Freak

(Themenstarter)

Anmeldungsdatum:
9. Juli 2008

Beiträge: 55

Wohnort: Wismar

Vielen Dank melc.

Ich habe alles ausser das herunterfahren schon geloest. Das hilft mir sehr weiter. Werde das Skript nach Fertigstellung im entsprechenden Forum zur Verfuegung stellen.

Antworten |