Einen Linux-Server zu betreiben ist eine sehr nützliche Sache, weil man über Samba Windows-Shares einrichten kann, einen Medienserver für alle Clients zur Verfügung hat, einen Webserver, Datenbank-Server usw.
Auch wenn Linux dazu fähig ist, ununterbrochen durch zulaufen, und das über einen langen Zeitraum (es gab da mal ein Projekt uptime, in dem Server verzeichnet waren, die seit 2 Jahren an einem Stück liefen), so ist es doch nicht erforderlich, den Server ununterbrochen durchlaufen zu lassen, wenn kein Client mehr im Netz ist, und die Dienste nicht mehr benötigt werden.
Bei meinem alten Linux-Server hatte ich ein Skript, das über die Netzwerkschnittstelle die Datenpakete ermittelte. Sobald die Anzahl der übermitteln Datenpakete unter ein gewisses Limit fiel, schaltete sich der Server ab. Die untere Anzahl der Datenpakete war aber schwer zu ermitteln, hatte aber auch den Nachteil, das nur bei einer Nichtbenutzung eines Clients über einen gewissen Zeitraum, sich Server abschaltete, obwohl der Client noch angemeldet war.
Bei dem neuen Server mußte eine, neue zuverlässigere Methode her. Gefunden habe ich sie im Ubuntu-Forum. Dieses Script grast den lokalen Adressraum ab, und ermittelt per nmap und ermittelt so die Anzahl der noch im Netz aktiven Clients. Fällt dieser unter die im Script konfigurierbare Anzahl, schaltet der Server ab. Bei der konfigurierbaren Anzahl ist der Server ein Client und ein evtl. Router der 2. Client.
Alle weiteren Clients sind dann angeschlossene PC, Laptop oder Tablets oder WLAN-fähige Handies. Aus der Kombination der Versuche und der time, die zwischen jedem Test vergeht läßt sich der Zeit bestimmen, die vergeht, bevor der Server einen Shutdown durchführt, nachdem sich der letzte Client abgemeldet hat. Ich habe dabei die im Script vorhandene Defaults so gelassen, was dazu führt, das sich der Server nach knapp 15 Minuten abschaltet.
Diese Lösung ist sehr zuverlässig und funktioniert nur dann nicht, wenn z.B. ein Tablet nicht richtig abgeschaltet, aber dann ist das kein Fehler des Skripts.
Das Einschalten des Servers erfolgt händisch oder Wake-Up-On-Lan.
Vielleicht kann diese Beschreibung ja dem einem oder anderen helfen. Über Kommentare, Anregungen, Kritik würde ich mich freuen.
ciao tuxoche
[tags]Linux,Server,automatischer shutdown,Wake up on Lan[/tags]
Nette Idee. Wenn man sowieso WakeOnLan zum Einschalten nutzt, könnte man mit folgendem Script (ingebunden z.B. über die inittab) den Server automatisch bei Ausbleiben der WOL-Pakete ausschalten:
#!/bin/bash
while
true
do
shutdown -c
shutdown -h +15 &
echo „Waiting for magic packet to continue …“
nc -l 9
done
Hallo Wolfgang,
vielen Dank für dein Script, leider nichts für mich, weil am Server kein WLAN hängt