Linux für Windows-Admins – Teil 4: systemd-Dienste und Automatisierung mit Cron
In den vorherigen Teilen der Serie „Linux für Windows-Admins“ haben wir die Grundlagen des Linux-Terminals, das Dateisystem und Rechte sowie Netzwerkkonfiguration behandelt. Im dritten Teil haben wir uns mit der Konfiguration von Netzwerken und der Firewall UFW beschäftigt. In diesem letzten Teil lernen Sie, wie Sie Dienste und Aufgaben unter Linux automatisieren können, indem Sie systemd-Dienste erstellen und Cron-Jobs einrichten.
Worum es geht und wann Sie das brauchen
Systemd ist der Prozess-Verwaltungsdienst (init system) in modernen Linux-Distributionen. Er verwaltet Dienste, Systeminitialisierung und Aufgaben. Cron hingegen ermöglicht die Automatisierung von wiederkehrenden Aufgaben wie Backups oder Wartungsaufgaben.
Wann Sie das brauchen:
- Wenn Sie regelmäßige Aufgaben automatisieren möchten.
- Wenn Sie sicherstellen wollen, dass Dienste zu einem bestimmten Zeitpunkt laufen.
- Für Wartungsaufgaben und regelmäßige Systemtasks.
Falsche Umsetzung kann zu Problemen wie unerwarteten Ausführungen oder nicht ausgeführten Aufgaben führen. Daher ist es wichtig, die Konfigurationen korrekt vorzunehmen.
Voraussetzungen
- Linux-Distribution: Ubuntu 20.04 LTS (oder eine neuere Version). Überprüfen Sie Ihre Version mit
lsb_release -a. - Berechtigungen: Root-Rechte sind erforderlich für einige Schritte. Öffnen Sie das Terminal und führen Sie
sudo suaus, um root-Berechtigungen zu erhalten. - Eingabeaufforderung: Öffnen Sie ein Terminal-Fenster (z.B. unter Ubuntu über die Tastenkombination Win + T).
Schritt-für-Schritt-Anleitung
Schritt 1: Einrichten eines einfachen systemd-Dienstes
Um einen Dienst zu erstellen, müssen Sie eine systemd-Unit-Datei erstellen. Diese Datei definiert die Konfiguration des Dienstes.
- Erstellen Sie eine neue Unit-Datei mit dem Namen
myservice.servicein/etc/systemd/system/. Verwenden Sie einen Texteditor wie nano: - Fügen Sie die folgende Konfiguration ein:
- Speichern Sie die Datei und beenden Sie den Editor (Strg + O, Enter, Strg + X).
So prüfen Sie, ob es geklappt hat: Überprüfen Sie mit systemctl status myservice.service, dass der Dienst geladen wurde.
Schritt 2: Aktivieren und Starten des Dienstes
Nachdem die Unit-Datei erstellt wurde, müssen Sie den Dienst aktivieren und starten.
- Aktivieren Sie den Dienst mit:
- Starten Sie den Dienst:
So prüfen Sie, ob es geklappt hat: Überprüfen Sie den Status des Dienstes mit systemctl status myservice.service.
Schritt 3: Erstellen eines Cron-Jobs für regelmäßige Aufgaben
Cron ermöglicht die Planung von wiederkehrenden Aufgaben.
- Öffnen Sie den Crontab-Editor:
- Fügen Sie eine neue Zeile ein, um einen Job zu planen. Zum Beispiel, um jeden Tag um 3 Uhr morgens ein Skript auszuführen:
- Speichern und beenden Sie den Editor (Strg + O, Enter, Strg + X).
So prüfen Sie, ob es geklappt hat: Überprüfen Sie die Cron-Jobs mit crontab -l.
Schritt 4: Erstellen eines Systemd-Timers für regelmäßige Aufgaben
Systemd-Timer bieten eine Alternative zu Cron und können flexibler sein.
- Erstellen Sie einen Timer-Unit-Datei:
- Fügen Sie die folgende Konfiguration ein:
- Speichern und beenden Sie den Editor (Strg + O, Enter, Strg + X).
- Aktivieren Sie den Timer:
- Starten Sie den Timer:
So prüfen Sie, ob es geklappt hat: Überprüfen Sie den Status des Timers mit systemctl status mytimer.timer.
Schritt 5: Protokollieren der Ausgaben von Cron-Jobs und Systemd-Timers
Es ist wichtig, die Ausgabe von Jobs zu protokollieren, um Probleme zu erkennen.
- Für Cron-Jobs können Sie die Ausgabe in eine Datei weiterleiten:
- Für Systemd-Timers verwenden Sie das Journalctl:
So prüfen Sie, ob es geklappt hat: Überprüfen Sie die Log-Datei oder den Journal für Ausgaben.
Schritt 6: Debuggen von Diensten und Jobs
Fehler können passieren. Hier sind einige Schritte zum Debugging:
- Überprüfen Sie den Status eines Dienstes mit:
- Für Cron-Jobs überprüfen Sie die Log-Dateien oder den Systemlog.
Dieser Schritt ist geschafft – weiter geht’s.
Die wichtigsten Befehle im Überblick
| Befehl | Wirkung | Hinweis |
|---|---|---|
systemctl enable myservice.service |
Aktiviert einen Dienst, sodass er bei jedem Systemstart gestartet wird. | Benötigt root-Rechte. |
crontab -e |
Öffnet den Crontab-Editor für die Definition von Jobs. | Bearbeiten Sie nur Ihre eigenen Cron-Jobs. |
systemctl start myservice.service |
Startet einen Dienst manuell. | Nutzen Sie sudo, wenn root-Rechte erforderlich sind. |
crontab -l |
Listet die aktiven Cron-Jobs auf. | Diese Befehle werden als Benutzer ausgeführt, der den Crontab verwendet. |
systemctl status myservice.service |
Gibt den Status eines Dienstes aus. | Nutzen Sie diesen Befehl zum Debugging. |
journalctl -u myservice.service |
Darstellt die Protokolldateien für einen bestimmten Dienst. | Einfach zu verwenden und bietet detaillierte Informationen. |
sudo systemctl enable mytimer.timer |
Aktiviert einen Timer, sodass er regelmäßig ausgeführt wird. | Nutzen Sie sudo, wenn root-Rechte erforderlich sind. |
systemctl start mytimer.timer |
Startet einen Timer manuell. | Dies ist nützlich, um die Konfiguration zu testen. |
Häufige Fehler und ihre Lösung
Fehlermeldung: „Failed to start myservice.service“
Ursache: Der Dienst kann nicht gestartet werden, weil der Befehl in ExecStart fehlerhaft ist oder nicht existiert.
Lösung: Überprüfen Sie die Unit-Datei und korrigieren Sie den Pfad zum auszuführenden Programm. Zum Beispiel:
Fehlermeldung: „No crontab for user“
Ursache: Der Benutzer hat keinen Crontab.
Lösung: Erstellen Sie einen neuen Crontab:
Fehlermeldung: „Failed to execute /path/to/script.sh“
Ursache: Das Skript existiert nicht oder hat keine ausführbaren Rechte.
Lösung: Überprüfen Sie den Pfad und setzen Sie die ausführbaren Rechte:
Fehlermeldung: „Job for mytimer.timer failed because a timeout was exceeded.“
Ursache: Der Timer kann nicht gestartet werden, weil der Dienst fehlerhaft ist.
Lösung: Überprüfen Sie die Unit-Datei des Timers und stellen Sie sicher, dass alles korrekt konfiguriert ist:
Änderungen rückgängig machen
Um Änderungen wieder zu sperren, können Sie folgende Schritte ausführen:
- Rückgängig machen eines Dienstes:
- Rückgängig machen eines Timers:
- Löschen eines Cron-Jobs:
Quellen und weiterführende Informationen
- Linux: Mit Systemd-Timer Dienste und Jobs flexibel planen … – heise.de
- Cron › Wiki › ubuntuusers.de – wiki.ubuntuusers.de
- Cron Job einrichten Linux: Syntax, Beispiele, Fehler — bin-bash.de – bin-bash.de
- Cron Jobs – Aufgaben automatisieren unter Linux – serverdiscounter.com
- Aufgaben mit Systemd unter Linux automatisch starten – linux-bibel.at
- Cronjobs unter Linux: Aufgaben planen – clouditiv.de
Hinweis: Dieser Beitrag wurde am 16.10.2026 mit KI-Unterstützung erstellt, auf Basis der genannten Quellen eigenständig formuliert und redaktionell von IT-Tribus betreut. Alle Angaben ohne Gewähr – bitte prüfen Sie Befehle vor dem Einsatz in produktiven Umgebungen und legen Sie vorher eine Sicherung an.
Benötigen Sie Unterstützung bei Linux automatisieren?
IT-Tribus ist Ihr IT-Dienstleister aus Nideggen. Vor Ort helfen wir in Düren, im Kreis Düren und in der Region Aachen – Monitoring und Fernwartung mit NinjaOne bieten wir Unternehmen auch überregional an.
