Full Backup einer SD-Card erstellt mit CHatGPT

  • Hallo zusammen


    Falls jemanden funktionierendes Full Backup seiner Sd-Card aus Synology-NAS möchte - hier eine funktionierende Version erstellt mit ChatGPT.


    Nach dem Backup wird das Ganze noch mit GZIP komprimiert und alle Versionen älter als 30 Tage werden automatisch gelöscht - vorausgesetzt die gerade laufende Sicherung bringt keine Fehler . Man muss noch das GZIP packe installieren


    sudo apt install nfs-common cifs-utils pigz -y



    Installation:


    mkdir /mnt/nas



    -----


    cd /etc/local/bin

    Nano Backup.sh


    das untenstehende reinkopieren


    dann chmod +x backup.sh


    ------------


    aufruf: backup.sh



    fertig.


    bei mir dauert es kanpp 10 Minuten meine SD-Card ist 8 GB groß nach der Komprimierung sind es nur noch 1,4 GB.


    P.S: ich bin in Linux ein Anfänger- das ganze hat CHATGPT erstellt ich hab nur die Pfade angepasst.

    leider kann ich keine Hilfestellung geben - da ich mich nur rudimentär in der Materie auskenne


    LG Roger



    #!/bin/bash

    # Backup-Skript für Raspberry Pi SD-Karte auf NAS (NFS-Version)

    # Autor: ChatGPT

    # Datum: 2025-10-10


    set -euo pipefail


    # --- Konfiguration ---

    NAS_IP="192.168.178.8"

    NAS_PATH="/volume1/Sicherung/#Raspi/Homebridge" # Pfad auf dem NAS (anpassen! - die müssen vorhanden sein

    MOUNT_POINT="/mnt/nas" # Lokaler Mountpunkt muss auch vorhanden sein

    BACKUP_NAME="raspi_sd_$(date +%Y%m%d).img.gz"

    BACKUP_FILE="$MOUNT_POINT/$BACKUP_NAME"

    SD_DEVICE="/dev/mmcblk0"

    LOGFILE="/var/log/backup_sd.log"

    RETENTION_DAYS=30


    # Optional: pigz für schnellere Kompression verwenden (falls vorhanden)

    COMPRESSOR=$(command -v pigz || echo gzip)


    # --- Logging-Funktion ---

    log() {

    echo "[$(date '+%F %T')] $*" | tee -a "$LOGFILE"

    }


    log "=== Backup gestartet ==="


    # --- NAS mounten ---

    if ! mountpoint -q "$MOUNT_POINT"; then

    log "Mount NAS NFS-Freigabe..."

    mkdir -p "$MOUNT_POINT"

    mount -t nfs "${NAS_IP}:${NAS_PATH}" "$MOUNT_POINT" -o rw,sync,hard,intr

    fi


    # --- Prüfen, ob Mount erfolgreich ---

    if ! mountpoint -q "$MOUNT_POINT"; then

    log "Fehler: NAS konnte nicht gemountet werden!"

    exit 1

    fi


    # --- Backup erstellen ---

    log "Erstelle komprimiertes Image von $SD_DEVICE → $BACKUP_FILE"

    if dd if="$SD_DEVICE" bs=4M status=progress | $COMPRESSOR > "$BACKUP_FILE"; then

    log "Backup erfolgreich abgeschlossen: $BACKUP_FILE"


    # --- Alte Backups löschen ---

    log "Lösche Backups älter als $RETENTION_DAYS Tage..."

    find "$MOUNT_POINT" -type f -name "raspi_sd_*.img.gz" -mtime +$RETENTION_DAYS -print -delete | tee -a "$LOGFILE"

    else

    log "Fehler: Backup fehlgeschlagen!"

    umount "$MOUNT_POINT" || true

    exit 1

    fi


    # --- NAS aushängen ---

    umount "$MOUNT_POINT"


    log "=== Backup abgeschlossen ==="

    exit 0


    ich sehe gerade da wird dieses Symbol || stat der 2 senkrechten Striche eingefügt


    Einmal editiert, zuletzt von Roger () aus folgendem Grund: Ein Beitrag von Roger mit diesem Beitrag zusammengefügt.

  • ich sehe gerade da wird dieses Symbol || stat der 2 senkrechten Striche eingefügt

    Nicht umsonst bietet diese Forensoftware grundlegende Formatierungen an, wie u.a. Code Formatierungen. ;)