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
- Mount-Point erstellen
Zuerst muss das lokale Verzeichnis existieren, in welches das NAS eingehängt wird.sudo mkdir -p /mnt/backup - 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 - 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]
- 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 - 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
raspiBackupselbst. 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.



