Bei meinem Arbeitgeber, KIJ denkt man derzeit vermehrt über das Thema Energiesparen nach.
Unter anderem wurde über die Sinnhaftigkeit des Rechner-Ausschaltens-zum-Feierabend diskutiert.
Als umweltbewusster Mitarbeiter mache ich das schon lange, jedoch gibt es ein Problem:
Wenn man vom Home-Office aus auf seinen Rechner im Büro zugreifen will, muss dieser irgendwie wieder angeschaltet werden.
Mein erster Ansatz dazu war, im BIOS Aufweck-Zeiten einzustellen:
Mein Arbeitsplatz-Rechner schaltete sich damit jeden Montag, Dienstag und Mittwoch jeweils um 8 Uhr wieder an.
Das funktionierte auch gut, nur leider startete der Rechner damit auch, wenn ich z. B. im Urlaub war. Und ich konnte ihn nicht starten, wenn ich ihn mal ausnahmsweise an einem Donnerstag brauchte.
Eine flexiblere Lösung musste her.
Moderne Rechner bieten dafür die Möglichkeit, aus dem laufenden Betriebssystem mittels ACPI Aufweckzeiten zu setzen. Das kann man sich unter Linux mit zwei einfachen Skripten zunutze machen:
1. pickTime
Dieses Bash-Skript zeigt einen Dialog an, mit dem ich Datum und Uhrzeit, zu welchem der Rechner das nächste mal aufwachen soll, auswählen kann:
#!/bin/bash
type zenity >/dev/null || pkexec apt-get install zenity || exit
function showHelp(){
NAME=$(basename $0)
echo ==== $NAME ====
echo
echo GUI for picking a time stamp
echo
echo By default, the timestamp refers to the closest match of the selected datetime in the future.
echo Use the following options to alter this behaviour:
echo '-d | --date : do not select closes matching time in future, but ask for a date'
echo '-h | --help : show this help text'
echo '-s | --subject <subject> : set a subject in the window title'
}
SUBJECT=""
PICKDATE=0
while [ "$1" ]; do
case "$1" in
-h|--help)
showHelp
exit 0
;;
-d|--date)
PICKDATE=1
;;
-s|--subject)
shift
SUBJECT="$1"
;;
esac
shift
done
DAY=$(date +%Y-%m-%d)
if [ $PICKDATE -eq 1 ]; then
DAY=$(zenity --calendar \
--title "Select day" \
--text "$SUBJECT" \
--date-format %Y-%m-%d)
fi
HOUR=$(zenity --list \
--title "Select hour" \
--text "$SUBJECT" \
--radiolist \
--column "Pick" \
--column "Hour" \
FALSE 00 FALSE 01 FALSE 02 FALSE 03 FALSE 04 FALSE 05 FALSE 06 FALSE 07 TRUE 08 FALSE 09 FALSE 10 FALSE 11 \
FALSE 12 FALSE 13 FALSE 14 FALSE 15 FALSE 16 FALSE 17 FALSE 18 FALSE 19 FALSE 20 FALSE 21 FALSE 22 FALSE 23)
if [ "$HOUR" = "" ]; then
exit -1
fi
MINUTE=$(zenity --list \
--title "Select minute" \
--text "$SUBJECT" \
--radiolist \
--column "Pick" \
--column "Minute" \
TRUE 00 FALSE 05 FALSE 10 FALSE 15 FALSE 20 FALSE 25 FALSE 30 FALSE 35 FALSE 40 FALSE 45 FALSE 50 FALSE 55)
if [ "$MINUTE" = "" ]; then
exit -1
fi
STAMP=$(date +%s -d "$DAY $HOUR:$MINUTE")
if [ $PICKDATE -eq 0 ]; then
if [ $(date +%s) -gt $STAMP ]; then
let STAMP=$STAMP+86400
fi
fi
echo $STAMP
2. waketime
Dieses Skript ruft den Auswahldialog auf, holt sich von diesem einen Zeitstempel für den nächsten Neustart und meldet diesen dem Basis-System. Danach wird der Rechner heruntergefahren und startet zum festgelegten Zeitpunkt neu.
#!/bin/bash
TIME=$(pickTime -d -s "Zeit für nächsten Neustart auswählen.")
echo Rechner wird heruntergefahren und $(date -d @$TIME) neu gestartet…
sudo rtcwake -m off -uv -t $TIME
Neuen Kommentar hinzufügen