LW IT Solutions
«« Blog Overview « IT & Networks
This post in other languages:

Datensicherung: Automatisierte Raspberry Pi-Backups auf Ubiquiti UNAS Pro

Der Betrieb von Diensten, Hausautomation oder Webanwendungen auf einem Raspberry Pi stößt oft auf ein Problem: die microSD-Karte. Diese ist anfällig für Datenkorruption durch intensive Lese- und Schreibzyklen. Um eine resiliente Architektur zu schaffen, sollten Daten nicht ausschließlich auf dem Pi verbleiben, sondern auf eine redundante Speicherlösung ausgelagert werden. Diese Anleitung führt durch die Einrichtung einer vollautomatisierten täglichen Sicherung eines Raspberry Pi direkt auf ein Ubiquiti UNAS Pro, einschließlich Datenbank-Dumps und Dateikomprimierung.

Schritt 1: Vorbereitung des UNAS Pro

  1. Im UniFi OS-Konsole die Storage/NAS-Anwendung öffnen.
  2. Einen neuen freigegebenen Ordner (z. B. Pi_Backups) erstellen.
  3. Einen dedizierten lokalen Benutzer (z. B. backup_user) mit einem sicheren Passwort anlegen.
  4. Dem Benutzer Lese-/Schreibberechtigungen für den Ordner Pi_Backups zuweisen.
  5. Sicherstellen, dass SMB für diesen Share aktiviert ist.

Schritt 2: Einbinden des UNAS Pro auf dem Raspberry Pi

Die Einbindung erfolgt via cifs-utils, damit der NAS-Share als lokales Laufwerk erscheint.

  1. SSH-Zugriff auf den Raspberry Pi herstellen.
  2. Nötige Utilities installieren: sudo apt update und sudo apt install cifs-utils.
  3. Lokalen Mount-Punkt erstellen: sudo mkdir -p /mnt/unas_backup.
  4. Eine versteckte Anmeldedatei unter /etc/.unas_creds mit Benutzername, Passwort und Domain erstellen. Datei schützen: sudo chmod 600 /etc/.unas_creds.
  5. Die /etc/fstab editieren und folgende Zeile ergänzen: //192.168.1.XXX/Pi_Backups /mnt/unas_backup cifs credentials=/etc/.unas_creds,uid=1000,gid=1000,iocharset=utf8 0 0.
  6. Mounten testen: sudo mount -a.

Schritt 3: Sicherung der MySQL-Anmeldedaten

Um automatisierte Dumps ohne Passwortabfrage zu ermöglichen:

  1. Eine MySQL-Konfigurationsdatei erstellen: nano ~/.my.cnf.
  2. Datenbankdaten einfügen ([client], user=..., password=...).
  3. Datei schützen: chmod 600 ~/.my.cnf.

Schritt 4: Backup-Skript erstellen

Ein Bash-Skript übernimmt den Export der Datenbanken, die Komprimierung von Ordnern und das Aufräumen alter Backups.

  1. Datei ~/pi_backup.sh erstellen und den entsprechenden Code einfügen.
  2. Ausführbarkeit gewähren: chmod +x ~/pi_backup.sh.

Bash

#!/bin/bash
BACKUP_DATE=$(date +"%Y-%m-%d")
NAS_MOUNT="/mnt/unas_backup"
DEST_DIR="$NAS_MOUNT/$BACKUP_DATE"
TARGET_FOLDERS="/var/www/html /etc/nginx /home/pi/docker-data"

if ! mountpoint -q $NAS_MOUNT; then exit 1; fi
mkdir -p "$DEST_DIR"
mysqldump --all-databases | gzip > "$DEST_DIR/db_backup_$BACKUP_DATE.sql.gz"
tar -czf "$DEST_DIR/files_backup_$BACKUP_DATE.tar.gz" $TARGET_FOLDERS
find "$NAS_MOUNT" -mindepth 1 -maxdepth 1 -type d -mtime +14 -exec rm -rf {} \;

Schritt 5: Automatisierung mit Cron

Zeitplan für die tägliche Ausführung um 2:00 Uhr morgens festlegen.

  1. Crontab öffnen: crontab -e.
  2. Zeile einfügen: 0 2 * * * /home/pi/pi_backup.sh > /home/pi/backup_log.txt 2>&1.

Das Ergebnis ist ein automatisierter Disaster-Recovery-Plan, der nächtlich Datenbanken exportiert, Konfigurationsdateien komprimiert und auf das UNAS Pro überträgt, wobei Archive älter als zwei Wochen automatisch gelöscht werden.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Leave a Reply

Your email address will not be published. Required fields are marked *

ALL ARTICLES & CATEGORIES

CCTV

Data Privacy

Digital Analytics

Digital Marketing

IT & Networks

Smart Home