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:

Linux-Terminal (Bash)
#!/bin/bash
# Das Skript erstellt ein Backup des www-Verzeichnisses

SOURCE="/var/www/"
DESTINATION="/backup/"

cp -r $SOURCE $DESTINATION
echo "Backup abgeschlossen."

Diese Zeilen erläutert:

  1. #!/bin/bash: Der Shebang, der angibt, dass das Skript mit Bash ausgeführt werden soll.
  2. SOURCE und DESTINATION: Variablen zur Speicherung des Quell- und Zielverzeichnisses.
  3. cp -r $SOURCE $DESTINATION: Kopiert die Dateien rekursiv vom Quellverzeichnis ins Backup-Verzeichnis.
  4. echo "Backup abgeschlossen.": Gibt eine Bestätigungsnachricht aus.

Erwartete Ausgabe in der Eingabeaufforderung:

Beispiel / Konfiguration
Backup abgeschlossen.

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:

Linux-Terminal (Bash)
#!/bin/bash
SOURCE="/var/www/"
DATE=$(date +%Y%m%d)
DESTINATION="/backup/$DATE"

cp -r $SOURCE $DESTINATION
echo "Backup abgeschlossen in $DESTINATION"

Stufe 2: Komprimierung der Backups

Um Platz zu sparen, komprimieren wir das Backup:

Linux-Terminal (Bash)
#!/bin/bash
SOURCE="/var/www/"
DATE=$(date +%Y%m%d)
DESTINATION="/backup/$DATE"

cp -r $SOURCE $DESTINATION
tar czf "$DESTINATION.tar.gz" -C /backup/ "$DATE"
rm -rf "$DESTINATION"
echo "Backup komprimiert in $DESTINATION.tar.gz"

Stufe 3: Fehlerbehandlung hinzufügen

Wir fügen eine einfache Fehlerbehandlung hinzu, um unerwartete Probleme zu erkennen:

Linux-Terminal (Bash)
#!/bin/bash
SOURCE="/var/www/"
DATE=$(date +%Y%m%d)
DESTINATION="/backup/$DATE"

if cp -r $SOURCE $DESTINATION; then
    tar czf "$DESTINATION.tar.gz" -C /backup/ "$DATE"
    rm -rf "$DESTINATION"
    echo "Backup komprimiert in $DESTINATION.tar.gz"
else
    echo "Fehler beim Kopieren der Dateien!"
fi

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:

Linux-Terminal (Bash)
#!/bin/bash
SOURCE="/var/www/"
DATE=$(date +%Y%m%d)
TIME=$(date +%H%M%S)
DESTINATION="/backup/$DATE-$TIME"

cp -r $SOURCE $DESTINATION
tar czf "$DESTINATION.tar.gz" -C /backup/ "$DATE-$TIME"
rm -rf "$DESTINATION"
echo "Backup komprimiert in $DESTINATION.tar.gz"

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

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.

Kostenlose Erstanalyse anfordern
📞 02427 9099860