Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:linuxclient:ubuntu-herunterfahren]] 

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.

Bei uns ( Xubuntu ) funktioniert es wie oben beschrieben, ich hänge mal meine Variante an :
  #!/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
 [[anwenderwiki:linuxclient:ubuntu-herunterfahren]] anwenderwiki/linuxclient/ubuntu-herunterfahren.txt · Zuletzt geändert: 2015/05/18 22:36 von 127.0.0.1