Inhaltsverzeichnis
LINUX - Secrets
Linux-PC automatisch abschalten & starten
Was ist das Ziel?
Wenn Dein Computer oder Server zu bestimmten Zeiten nicht genutzt wird, kann er automatisch heruntergefahren und später wieder eingeschaltet werden – ohne, dass Du manuell eingreifen musst. Dies spart Energie, schont die Hardware und bietet Komfort. Hier erfährst Du Schritt für Schritt, wie Du dies mit dem Linux-Tool „rtcwake
“ und CronJobs einrichtest.
Grundlagen: Was macht „rtcwake“ eigentlich?
Das Tool „rtcwake
“ ist ein Standardwerkzeug, das auf den meisten Linux-Systemen vorinstalliert ist. Es arbeitet mit der Echtzeituhr (RTC – Real Time Clock) Deiner Hardware. Diese Uhr funktioniert unabhängig vom Betriebssystem und ist sogar dann aktiv, wenn Dein Computer ausgeschaltet ist. „rtcwake
“ verwendet die RTC, um:
1. Deinen Computer in den Schlafmodus oder komplett auszuschalten.
2. Eine automatische Einschaltzeit festzulegen.
Die Vorteile liegen auf der Hand:
- Energie sparen: Der Rechner verbraucht keinen Strom, wenn er nicht gebraucht wird.
- Komfort: Du musst Dich nicht selbst darum kümmern, den Rechner hochzufahren.
- Hardware schonen: Weniger Betriebszeit bedeutet längere Lebensdauer.
Wie funktioniert „rtcwake“?
1. Die grundlegende Syntax von „rtcwake“
Ein einfacher „rtcwake
“-Befehl sieht so aus:
sudo rtcwake -m off -s 180
Hier ist, was dabei passiert:
- `sudo`: Da `rtcwake` Administratorrechte benötigt, musst Du den Befehl mit `sudo` ausführen.
- `-m off`: Der Rechner wird vollständig heruntergefahren (andere Modi wie „Standby“ oder „Ruhezustand“ sind auch möglich, dazu später mehr).
- `-s 180`: Der Rechner wird nach 180 Sekunden (3 Minuten) automatisch wieder eingeschaltet.
Das ist ideal, um zu testen, ob Deine Hardware „rtcwake
“ unterstützt.
2. Die Modi von „rtcwake“
Der Schalter `-m` legt fest, was mit dem Rechner passieren soll:
- `off`: Der Rechner wird vollständig ausgeschaltet.
- `standby`: Leichter Schlafmodus, schnelleres Aufwachen.
- `mem`: Suspend-to-RAM, Daten bleiben im Arbeitsspeicher.
- `disk`: Suspend-to-Disk, Daten werden auf die Festplatte geschrieben (ähnlich wie Ruhezustand bei Windows).
- `no`: Der Rechner bleibt an, aber ein Aufwachzeitpunkt wird festgelegt.
Für die meisten Fälle reicht der Modus `off`, da er den Rechner vollständig ausschaltet.
3. Zeitangabe mit Sekunden (`-s`)
Mit dem Parameter `-s` gibst Du die Zeit in Sekunden an, nach der der Rechner wieder starten soll. Beispiel:
sudo rtcwake -m off -s 3600\\
Dieser Befehl schaltet den Rechner aus und startet ihn nach 3600 Sekunden (1 Stunde) neu.
Wenn Du längere Zeiten planen willst, kannst Du die Sekunden leicht berechnen:
- 6 Stunden: 6 × 3600 = 21600 Sekunden
- 8 Stunden: 8 × 3600 = 28800 Sekunden
4. Exakte Zeitangabe mit `-t`
Statt die Zeit in Sekunden anzugeben, kannst Du auch eine genaue Uhrzeit verwenden. Beispiel:
sudo rtcwake -m off -t $(date +%s -d 'tomorrow 08:00')
Hier wird Folgendes gemacht:
- `date +%s -d 'tomorrow 08:00'`: Wandelt den Zeitpunkt (morgen um 8:00 Uhr) in Sekunden seit dem 1. Januar 1970 um.
- Der Rechner wird heruntergefahren und startet genau zu diesem Zeitpunkt.
Hinweis: Verwende `today`, wenn der Rechner noch vor Mitternacht eingeschaltet werden soll, und `tomorrow`, wenn er am nächsten Tag starten soll.
Automatisierung mit CronJobs
Ein CronJob ist eine wiederkehrende Aufgabe, die Du zeitlich planen kannst. Damit kannst Du den „rtcwake
“-Befehl automatisch ausführen lassen.
1. Crontab für Root bearbeiten
`rtcwake` benötigt Administratorrechte, daher muss der Befehl in der Crontab des Root-Benutzers eingetragen werden:
sudo crontab -e -u root
2. Beispiel für einen CronJob
Angenommen, Du möchtest den Rechner jede Nacht um 1:00 Uhr herunterfahren und nach 8 Stunden (28800 Sekunden) wieder starten:
0 1 * * * /usr/sbin/rtcwake -m off -s 28800
Hier ist die Erklärung:
- `0 1 * * *`: Führt den Befehl jeden Tag um 1:00 Uhr aus.
- `/usr/sbin/rtcwake`: Der vollständige Pfad zu „rtcwake
“. Stelle sicher, dass dieser korrekt ist, indem Du `which rtcwake` ausführst.
Was tun, wenn `rtcwake` nicht funktioniert?
Manchmal unterstützt die Hardware die Funktion von „rtcwake
“ nicht vollständig. In solchen Fällen gibt es Alternativen:
1. Zeitschaltuhren: Mechanische oder digitale Zeitschaltuhren können den Strom steuern und den Rechner ein- und ausschalten.
2. Smarte Steckdosen: Geräte wie die Fritz DECT 200 können über eine App oder die FritzBox programmiert werden.
Beachte dabei, dass der Shutdown-Befehl (z. B. `shutdown now`) ein paar Minuten vor dem Ausschalten der Stromversorgung geplant werden muss, um Datenverluste zu vermeiden.
Zusammenfassung
Mit „rtcwake
“ und CronJobs kannst Du Deinen Linux-Rechner energiesparend und komfortabel steuern. So gehst Du vor:
1. Teste zunächst, ob Deine Hardware „rtcwake
“ unterstützt.
2. Plane Zeiten in Sekunden (`-s`) oder verwende feste Uhrzeiten (`-t`).
3. Automatisiere die Steuerung mit CronJobs, um manuelles Eingreifen zu vermeiden.
4. Falls es Probleme gibt, greife auf Alternativen wie Zeitschaltsteckdosen zurück.