Zurück zu allen Artikeln

Robustes Raspberry Pi Backup-Skript mit NFS-Mount und Fehlerprüfung

admin
3 min Lesezeit
Robustes Raspberry Pi Backup-Skript mit NFS-Mount und Fehlerprüfung

Einleitung

Datensicherung ist beim Raspberry Pi aufgrund der empfindlichen SD-Karten Pflicht. Wer ein NAS besitzt, möchte Backups meist direkt dort ablegen. Da dauerhafte Netzwerkverbindungen jedoch abreissen können, ist ein «Mount-on-Demand»-Ansatz (Verbinden bei Bedarf) deutlich stabiler.

Dieses Tutorial stellt ein optimiertes Bash-Skript vor, das ein NFS-Laufwerk automatisch einbindet, das Backup mit raspiBackup durchführt und die Verbindung anschliessend sauber wieder trennt.

Voraussetzungen:

  • Installiertes raspiBackup
  • Vorhandenes NAS mit NFS-Freigabe
  • SSH-Zugriff auf den Raspberry Pi

[BILD 1: Diagramm des Ablaufs: Mounten -> Backup -> Unmount]

Überblick

Das Skript automatisiert folgende Aufgaben:

  • Dynamisches Einhängen des Netzwerkspeichers
  • Überprüfung auf Mount-Fehler (Abbruch bei Fehler)
  • Durchführung des Backups
  • Sicheres Aushängen nach Abschluss

Schritt-für-Schritt Anleitung

  1. Mount-Point erstellen
    Zuerst muss das lokale Verzeichnis existieren, in welches das NAS eingehängt wird.
    sudo mkdir -p /mnt/backup
  2. Skript erstellen
    Erstellen Sie eine neue Datei für das Backup-Skript.

    Dateiname: backup_wrapper.sh
    Pfad: /usr/local/bin/

    sudo nano /usr/local/bin/backup_wrapper.sh
  3. Code einfügen
    Kopieren Sie den folgenden Code. Beachten Sie die strikte Syntax der Variablen ${VAR}, um Fehler bei der Auflösung zu vermeiden.
    #!/bin/bash
    
    # --- KONFIGURATION ---
    NFS_SERVER="192.168.20.5"
    NFS_SHARE="/backup"
    LOCAL_MOUNT_POINT="/mnt/backup"
    
    # --- ABLAUF ---
    
    echo "Starte Backup-Vorgang..."
    
    # 1. NFS-Share einhängen
    echo "Versuche Mount von ${NFS_SERVER}:${NFS_SHARE}..."
    sudo mount "${NFS_SERVER}:${NFS_SHARE}" "${LOCAL_MOUNT_POINT}"
    
    # Fehlerprüfung Mount
    if [ $? -ne 0 ]; then
        echo "FEHLER: Konnte NFS-Share nicht einhängen. Abbruch."
        exit 1
    fi
    
    # 2. Backup durchführen
    # raspiBackup verwaltet die Rotation (Anzahl Backups) in seiner eigenen Konfiguration
    echo "Führe raspiBackup aus..."
    if sudo raspiBackup -m detailed; then
        echo "Backup erfolgreich beendet."
    else
        echo "FEHLER: raspiBackup meldet ein Problem."
    fi
    
    # 3. NFS-Share aushängen
    echo "Hänge Speicher aus..."
    sudo umount "${LOCAL_MOUNT_POINT}"
    
    # Fehlerprüfung Unmount
    if [ $? -ne 0 ]; then
        echo "WARNUNG: Aushängen fehlgeschlagen oder Ressource war belegt."
        # Optional: exit 1, hier aber unkritisch für das Backup selbst
    fi
    
    echo "Prozess abgeschlossen."

    [BILD 2: Screenshot des Codes im Nano-Editor mit Syntax-Highlighting]

  4. Skript ausführbar machen
    Damit das System das Skript starten kann, müssen die Rechte angepasst werden.
    sudo chmod +x /usr/local/bin/backup_wrapper.sh
  5. Testlauf starten
    Führen Sie das Skript einmal manuell aus, um die Funktion zu prüfen.
    sudo /usr/local/bin/backup_wrapper.sh

Wichtige Hinweise & Stolperfallen

Backup-Rotation: Das Skript überlässt die Rotation (z. B. «behalte die letzten 5 Backups») dem Tool raspiBackup selbst. Dies sollte in der dortigen Konfigurationsdatei (/usr/local/etc/raspiBackup.conf) eingestellt werden, anstatt es manuell im Wrapper-Skript zu programmieren.

Netzwerkstabilität: Stellen Sie sicher, dass das NAS zum Zeitpunkt des Backups läuft. Das Skript bricht ab (Exit Code 1), wenn der Mount fehlschlägt, um nicht versehentlich auf die lokale SD-Karte zu schreiben.

Ergebnis & Fazit

Mit diesem Wrapper-Skript haben Sie eine robuste Lösung geschaffen, die Netzwerkfreigaben nur dann verbindet, wenn sie wirklich benötigt werden. Dies erhöht die Sicherheit (Schutz vor Krypto-Trojanern) und die Stabilität des Systems. Über einen Cronjob lässt sich dieser Vorgang nun problemlos automatisieren.

Ähnliche Artikel