Server nur ohne angemeldeten Benutzer herunterfahren

Wie bestimmt in jedem Hackerspace oder manchen Büros stehen dort Server die eigentlich nur über den Tag hinweg genutzt werden und abends oder bei „Ladenschluss“ heruntergefahren werden können. Zwar ist es kein Problem die Einstellungen in den ACPI Config-Dateien so vorzunehmen das der Server beim drücken des Power-Knopfes herunterfährt, allerdings würden dann alle Nutzer, die noch (von extern über einen SSH Tunnel) auf dem Server sind, rausgeschmissen. Damit man trotzdem den Server per Tastatendruck ohne sich extra per ssh anzumelden herunterfahren kann gibt es eine kleine Shellscriptabfrage die man einbauen kann. Gefunden habe ich diese auf linux-club.de. Sie bewirkt, dass der Server per Tastendruck nur heruntergefahren wird wenn kein Nutzer mehr einen Tunnel zum Server offen hat. Ist dies der Fall und der Power-Knopf wird gedrückt, läuft der Server trotzdem weiter und der root bekommt eine E-Mail das der Power-Knopf betätigt wurde. Dei nötigen Schritte sind recht simpel:

Kontrollieren Sie vorher ob das Paket acpid installiert ist.

Öffnen Sie als root die Config-Datei für den Powerbutton mit dem Befehl

vi /etc/acpi/events/power_button

und ändern sie den Eintrag

action=

so ab das dort

action=sh /root/bin/poweroff.sh

steht (mit i kommen Sie in den Eingabemodus, zum speichern Esc und dann :wq). Das Script poweroff.sh erstellen wir noch später. Sie können es auch woanders speichern. In diesem Falle müssen Sie nur den Pfad ändern.

Mit dem Befehl vi /root/bin/poweroff.sh erstellen Sie das Script und öffnen gleichzeitig den Editor. Drücken Sie i um in den Eingabemodus zu gelangen und tragen Sie folgendes ein:

#!/bin/bash
r=`who -u`
if [[ $r != "" ]];
then echo "Der Powerknopf wurde gedrückt" | mail -s "Powerknopf" root@localhost
else poweroff
fi

Nun speichern Sie das Script ab (zum speichern Esc und dann :wq). Jetzt müssen Sie das Script noch ausführbar machen.

chmod +x poweroff.sh

Nun kann der Server nur noch heruntergefahren werden wenn keiner mehr auf dem System angemeldet ist. Sollte trotzdem der Powerbutton betätigt werden während noch jemand angemeldet ist wird dem root eine Mail zugeschickt, dass der Knopf betätigt wurde. Der Befehl kann aber auch einfach durch ein

exit 0

ersetzt werden, falls keine Mail erwünscht ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *