Ubuntuclients herunterfahren nach Dominik Förderer:
Das Skript benutzt die Bibliothek libnotify um Meldungen über das Ubuntu-notify-system anzuzeigen. Alternativ bietet Zenity dem Benutzer die Möglichkeit das Herunterfahren abzubrechen. In diesem Fall bitte 1.) bis 3.) durch 1a.) bis 3a.) ersetzen. Die Einrichtung funktioniert folgendermaßen:
1.) Installation des Pakets libnotify-bin (sudo apt-get install libnotify-bin)
2.) Anlegen einer leeren Datei (touch herunterfahren)
3.) Folgenden Inhalt in die Datei einfügen und speichern:
#!/bin/bash notify-send -u critical -i /usr/share/icons/Humanity/status/48/dialog-warning.png "ACHTUNG!" "Der Rechner schaltet sich in 2 min aus! Speichern Sie Ihre Daten jetzt!" & sleep 60 notify-send -u critical -i /usr/share/icons/Humanity/status/48/dialog-warning.png "ACHTUNG!" "Der Rechner schaltet sich in 1 min aus! Speichern Sie Ihre Daten jetzt!" & sleep 60 notify-send -u critical -i /usr/share/icons/Humanity/status/48/dialog-warning.png "ACHTUNG!" "Der Rechner schaltet sich in jetzt aus!" & sleep 15 shutdown -h now exit 0
1a.) Falls Zenity nicht installiert ist in der Konsole: sudo apt-get install zenity
2a.) Anlegen einer leeren Datei (touch herunterfahren)
3a.) Folgenden Inhalt in die Datei einfügen und speichern:
#!/bin/bash zenity --question --timeout=30 --text="Der PC wird in 30 Sekunden abgeschaltet. Ist das OK?" --title="PC-Abschaltung"; STATUS=$? if [ $STATUS = "1" ]; then echo "" else zenity --info --timeout=120 --text "Der Rechner wird in 2 Minuten heruntergefahren. Bitte abspeichern."; shutdown -h now fi
4.) Datei ausführbar machen (sudo chmod +x herunterfahren)
5.) Datei nach /usr/bin kopieren (cp /PfadzurDatei/heruterfahren
6.) Datei ausführbar machen (sudo chmod +x herunterfahren)
7.) Datei nach /usr/bin kopieren (cp /PfadzurDatei/heruterfahren /usr/bin)
8.) Automatisierte Ausführung des Skripts in die Systemweite crontab (/etc/crontab) eintragen; Befehle werden hier als root ausgeführt! Die Struktur der crontab ist schon vorgegeben, da einige jobs defaultmäßig bei Ubuntu ausgeführt werden
Beispielzeile crontab:
# m dom mon dow user command 30 17 * * * root DISPLAY=:0 /usr/bin/herunterfahren
Erklärung: täglich um 17.30 Uhr wird das Skript herunterfahren ausgeführt. Der Displaybefehl ist nötig, da die Ausgabe über den x-server erfolgen soll.
#!/bin/bash user=$(w -sh | grep -v adm | cut -d" " -f1 | uniq) # Wer ist angemeldet ? if [ ${#user} -gt 0 ] ; then # wenn ein User gefunden ist export DISPLAY=:0 sudo -u $user xhost +si:localuser:root # löst das "Display-Problem" /usr/bin/zenity --question --text="ACHTUNG! \n Der PC wird in 30 Sekunden abgeschaltet. Ist das OK ?" --title="PC-Abschaltung" --timeout=30 STATUS=$? if [ $STATUS = "1" ]; then echo "" else /usr/bin/zenity --info --timeout=120 --text "Der Rechner wird in 2 Minuten heruntergefahren. Bitte nicht \"OK\" anklicken und abspeichern." shutdown -hP now fi else # Niemand angemeldet shutdown -hP now fi