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
- Speichern als: /home/user/backup.sh
- Ausführbar machen:
chmod +x /home/user/backup.sh
🔹 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=truewird 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
- Aktive Timer anzeigen:
systemctl list-timers
- Status prüfen:
systemctl status backup.timer
- Logs ansehen:
journalctl -u backup.service
👉 So weißt du jederzeit, ob dein Backup erfolgreich war.
🔹 Erweiterungen
- Statt nur
/Dokumentekannst du mehrere Ordner sichern. - Den Speicherort
/home/user/backupskönntest du auf eine externe Festplatte oder ein NAS legen. - Mit
rsyncstatttarlassen 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=truewerden verpasste Backups nachgeholt. - Über
systemctl list-timersundjournalctlbehä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
