In den letzten Kapiteln hast du gelernt, wie systemd funktioniert, Dienste gesteuert werden und wie du eigene Services und Timer erstellst.
Jetzt setzen wir dieses Wissen in einem
kompletten Projekt um: Wir bauen einen
Backup-Service, der täglich automatisch läuft und sich selbst überwacht.
🔹 Ziel des Projekts
Am Ende dieses Kapitels hast du:
- einen eigenen systemd-Service, der ein Backup-Skript startet,
- einen dazugehörigen Timer, der das Skript jeden Tag automatisch ausführt,
- Logs, die dokumentieren, wann das Backup lief,
- und ein robustes Setup, das sich leicht erweitern lässt.
🔹 Schritt 1: Backup-Skript schreiben
Lege ein einfaches Skript an:
#!/bin/bash
DATUM=$(date +%F)
BACKUP_DIR="/home/user/backups"
QUELLE="/home/user/Dokumente"
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/backup_$DATUM.tar.gz" "$QUELLE" >> "$BACKUP_DIR/backup.log" 2>&1
🔹 Schritt 2: Service-Unit erstellen
Datei:
/etc/systemd/system/backup.service
[Unit]
Description=Tägliches Backup meiner Dokumente
After=network.target
[Service]
Type=oneshot
ExecStart=/home/user/backup.sh
[Install]
WantedBy=multi-user.target
👉 Dieser Service führt dein Backup-Skript genau einmal aus, wenn er gestartet wird.
🔹 Schritt 3: Timer-Unit erstellen
Datei:
/etc/systemd/system/backup.timer
[Unit]
Description=Backup-Timer
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
- Läuft täglich um 2 Uhr nachts.
- Mit
Persistent=true wird ein verpasstes Backup beim nächsten Start nachgeholt.
🔹 Schritt 4: Service & Timer aktivieren
- systemd neu laden:
sudo systemctl daemon-reload
- Timer starten:
sudo systemctl start backup.timer
- Timer aktivieren (beim Boot automatisch starten):
sudo systemctl enable backup.timer
👉 Der Backup-Service läuft nun jeden Tag automatisch.
🔹 Schritt 5: Kontrolle & Logs
👉 So weißt du jederzeit, ob dein Backup erfolgreich war.
🔹 Erweiterungen
- Statt nur
/Dokumente kannst du mehrere Ordner sichern.
- Den Speicherort
/home/user/backups könntest du auf eine externe Festplatte oder ein NAS legen.
- Mit
rsync statt tar lassen sich inkrementelle Backups erstellen.
- Über einen zusätzlichen Service könntest du nach jedem Backup eine Benachrichtigungs-Mail verschicken.
🔹 Übung
- Erstelle dein eigenes Backup-Skript für ein wichtiges Verzeichnis.
- Baue einen systemd-Service, der das Skript ausführt.
- Erstelle einen Timer, der den Service täglich um eine feste Uhrzeit startet.
- Teste mit:
systemctl start backup.service
und prüfe anschließend die Logs.
- Bonus: Ergänze den Timer so, dass er das Backup zusätzlich jeden Sonntag um 12 Uhr mittags startet.
✅ Zusammenfassung
- Ein Service führt dein Skript aus.
- Ein Timer startet den Service automatisch nach Zeitplan.
- Mit
Persistent=true werden verpasste Backups nachgeholt.
- Über
systemctl list-timers und journalctl behältst du die Kontrolle.
👉 Damit hast du ein
vollständiges, produktiv nutzbares Setup mit systemd erstellt. Herzlichen Glückwunsch 🎉 – du beherrschst jetzt die Grundlagen von systemd und kannst eigene Dienste und Timer für deine Projekte einrichten!
📚 Inhaltsverzeichnis
👉
systemd Kapitel 1: Grundlagen – Was ist systemd und wie arbeitet es?
👉
systemd Kapitel 2: Dienste steuern mit systemctl
👉
systemd Kapitel 3: Logs und Fehlersuche mit journalctl
👉
systemd Kapitel 4: Bootprozess & Targets verstehen
👉
systemd Kapitel 5: Eigene Services erstellen
👉
systemd Kapitel 6: Timer als moderne Cron-Alternative
👉
systemd Kapitel 7: Abschlussprojekt – Eigene Services & Timer kombinieren