Backup
Veröffentlicht: 07.06.2026
| Aktualisiert: 07.06.2026
Server Backup
(Lokales Dateisystem → ZFS storage →) ZFS Snapshot → ZFS Synchronisation.
Lokal
Um einen lokalen Ordner zwischen zwei Dateisystemen zu sichern nutzen wir Rsync + Crontab.
Zunächst richten wir das Zielverzeichnis ein, z.B.:
sudo mkdir /storage/backup/local
sudo chown -R USERNAME: /storage/backup/local
Das Backup script speichern wir unter /data/scripts/backup/local_docker.shund sieht wie folgt aus:
#!/bin/sh
#README: https://niklas-stephan.de/wiki/tutorials/backup/
# Set variables
SOURCE_DIR="/data/docker"
BACKUP_DIR="/storage/backup/local"
NTFY_URL="https://notify.handtrixxx.com/backup"
rsync -aX --delete --partial --inplace --timeout=60 \
"$SOURCE_DIR" "$BACKUP_DIR"
RSYNC_EXIT="$?"
#RSYNC_EXIT="1"
if [ "$RSYNC_EXIT" -ne 0 ]; then
if [ "$RSYNC_EXIT" -eq 23 ]; then
MESSAGE="Backup of \"$SOURCE_DIR\" completed with partial errors (exit code 23 - some files could not be read)"
else
MESSAGE="Backup of \"$SOURCE_DIR\" failed with exit code $RSYNC_EXIT"
fi
curl --max-time 30 -s -o /dev/null\
-H "Title: Backup failed on $(hostname)" \
-H "Tags: warning" \
-d "$MESSAGE" \
"$NTFY_URL"
fi
Wir machen dieses Script ausführbar über:
chmod +x /data/scripts/backup/local_docker.sh
Um das Script manuell auszuführen gilt folgendes Kommando:
sudo /data/scripts/backup/local_docker.sh
Zur Automatisierung erstellen wir einen Cronjob der täglich 02:00 Uhr laufen soll.
sudo crontab -e
Und fügen diese Zeile hinzu:
0 2 * * * /data/scripts/backup/local_docker.sh >> /var/log/backup_local_docker.log 2>&1
Erläuterung:
- Läuft 02:00 Uhr täglich (
0 2 * * *) - Läuft als root
- Erzeugt eine Log Datei zur Fehleranalyse