Bash-Skripte lernen – Teil 4: Backup Skript mit Cron
Aktualisiert am 01.11.2026 · Lesezeit ca. 4 Min. · Niveau: Anfänger · von Viktor Tribus, IT-Tribus Nideggen
In den vorherigen Teilen dieser Serie haben wir Ihnen gezeigt, wie Sie ein erstes Bash-Skript schreiben und Ausführungsrechte setzen (Teil 1), Variablen und Parameter verwenden (Teil 2) und Bedingungen und Schleifen implementieren (Teil 3) (siehe Teil 3). In diesem Artikel erweitern wir Ihr Wissen, indem wir ein Backup-Skript erstellen und diesen Prozess mit Cron automatisieren.
Was Sie in diesem Beitrag lernen
- Einen einfachen Bash-Backup-Skript schreiben.
- Cron-Jobs zur Automatisierung einrichten.
- Fehlerbehandlung und typische Anfängerfehler erkennen.
- Ein Backup-Skript erweitern und anpassen.
Geschätzte Zeit: 20 Minuten. Werkzeuge: Linux-Terminal, Editor (z.B. nano oder vim).
Das Prinzip einfach erklärt
Stellen Sie sich vor, Sie möchten regelmäßig Backups Ihrer wichtigen Dateien erstellen und sicherstellen, dass diese Prozesse automatisch laufen – ähnlich wie ein Putzfuchs, der täglich den Hausflur kehrt. In unserem Fall übernimmt Cron die Rolle des Putzfuchses. Es läuft in Hintergrundprozessen und sorgt dafür, dass Ihr Backup-Skript zu den gewünschten Zeiten ausgeführt wird.
Ihr erstes Beispiel
Beginnen wir mit einem einfachen Bash-Backup-Skript, das eine bestimmte Verzeichnisstruktur (z.B. /var/www/) in ein Backup-Verzeichnis (/backup) kopiert:
Diese Zeilen erläutert:
#!/bin/bash: Der Shebang, der angibt, dass das Skript mit Bash ausgeführt werden soll.SOURCEundDESTINATION: Variablen zur Speicherung des Quell- und Zielverzeichnisses.cp -r $SOURCE $DESTINATION: Kopiert die Dateien rekursiv vom Quellverzeichnis ins Backup-Verzeichnis.echo "Backup abgeschlossen.": Gibt eine Bestätigungsnachricht aus.
Erwartete Ausgabe in der Eingabeaufforderung:
Schritt für Schritt erweitern
Um das Skript zu erweitern, können wir verschiedene Funktionen hinzufügen. Hier sind drei Ausbaustufen.
Stufe 1: Datum im Backup-Verzeichnis
Wir fügen ein Datum in den Namen des Zielverzeichnisses hinzu, um die Backups besser zu organisieren:
Stufe 2: Komprimierung der Backups
Um Platz zu sparen, komprimieren wir das Backup:
Stufe 3: Fehlerbehandlung hinzufügen
Wir fügen eine einfache Fehlerbehandlung hinzu, um unerwartete Probleme zu erkennen:
Typische Anfängerfehler
Fehlender Shebang
Ohne #!/bin/bash am Anfang des Skripts wird es möglicherweise nicht korrekt ausgeführt.
Nicht vorhandenes Quellverzeichnis
Wenn das Quellverzeichnis nicht existiert, wird das Skript fehlschlagen. Überprüfen Sie stets die Existenz mit if [ -d "$SOURCE" ]; then ... fi.
Fehlende Ausführungsrechte
Wenn das Skript keine ausführbaren Rechte hat, führen Sie chmod +x SKRIPTNAME.sh durch. Weitere Informationen zu chmod finden Sie in Teil 1 dieser Serie.
Übung für Sie
Erweitern Sie das Skript, indem Sie ein Zeitstempel in den Namen der komprimierten Datei hinzufügen. Hier ist eine mögliche Lösung:
Spickzettel
| Befehl/Syntax | Bedeutung | Beispiel |
|---|---|---|
#!/bin/bash |
Shebang, gibt an, dass das Skript mit Bash ausgeführt wird. | #!/bin/bash |
cp -r $SOURCE $DESTINATION |
Kopiert Quellverzeichnis rekursiv ins Zielverzeichnis. | cp -r /var/www/ /backup/ |
tar czf "$DATE.tar.gz" -C /backup/ "$DATE" |
Erstellt eine komprimierte tar-Datei aus dem Zielverzeichnis. | tar czf 20231005.tar.gz -C /backup/ "20231005" |
rm -rf "$DESTINATION" |
Löscht das Zielverzeichnis rekursiv und ohne Bestätigung. | rm -rf /backup/20231005 |
if [ -d "$SOURCE" ]; then ... fi |
Überprüft die Existenz des Quellverzeichnisses und führt den Codeblock aus, wenn es vorhanden ist. | if [ -d "/var/www/" ]; then echo "Quellverzeichnis existiert."; fi |
$(date +%Y%m%d) |
Erstellt ein Datum im Format JJJJMMTT, z.B. 20231005. | DATE=$(date +%Y%m%d) |
Häufige Fragen
Kann ich das Skript manuell ausführen?
Ja, Sie können das Skript in einem Terminal manuell ausführen, indem Sie den Pfad zum Skript angeben. Zum Beispiel: ./backup_script.sh.
Wie prüfe ich die Cron-Job-Einträge?
Die aktiven Cron-Jobs für den aktuellen Benutzer können mit dem Befehl crontab -l eingesehen werden.
Kann ich mehrere Backups pro Tag erstellen?
Ja, Sie können in der Crontab mehrere Zeilen hinzufügen, um das Skript an verschiedenen Zeitpunkten des Tages auszuführen. Zum Beispiel: 0 12 * * * /path/to/backup_script.sh für einen täglichen Backup um 12 Uhr.
Was passiert, wenn der Speicherplatz voll ist?
Wenn die Festplattenkapazität vollständig ausgeschöpft wird und kein Platz mehr für das Backup verfügbar ist, kann das Skript fehlgeschlagen sein. Überprüfen Sie regelmäßig den verfügbaren Speicherplatz.
Fazit und nächster Schritt
In dieser Serie haben wir die Grundlagen der Bash-Skripte behandelt: von den ersten Schritten über Variablen, Bedingungen und Schleifen bis hin zur praktischen Anwendung mit einem Backup-Skript und Cron. Sie sind nun in der Lage, einfache Skripte zu erstellen, Fehlerbehandlung hinzuzufügen und automatische Aufgaben durchzuführen.
Als nächster Schritt könnten Sie sich weiter vertiefen in die Verwaltung von Systemdiensten oder die Erstellung komplexerer Backup-Strategien. Für technische Unterstützung bei der Umsetzung steht Ihnen IT-Tribus in Nideggen zur Verfügung.
Serie: Bash-Skripte lernen – Teil 4 von 4
← Vorheriger Teil: Bash-Skripte lernen – Teil 3: Bedingungen und Schleifen
Das könnte Sie auch interessieren
Quellen und weiterführende Informationen
- How to back up using shell scripts – ubuntu.com
- Cron › Wiki › ubuntuusers.de – wiki.ubuntuusers.de
- Bash Shell Scripting and Automated Backups with Cron – medium.com
- Automating Bash Scripts on Linux Using Cron and Systemd – dev.to
- Cron-Jobs einrichten – bin-bash.de
- Shell-Programmierung – 15.4 Backup-Strategien – openbook.rheinwerk-verlag.de
Hinweis: Dieser Beitrag wurde am 01.11.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 Bash Backup Skript Cron?
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.
