Backup des kompletten Home-Verzeichnisses
Achtung! Das Backup des Home-Verzeichnisses muss unbedingt für jedes Betriebssystem separat erstellt werden. Es ist fatal, ein Fedora-Home-Verzeichnis auf CachyOS oder einer anderen Distribution wiederherzustellen.
Nicht die sichtbaren Ordner sind das Problem – es sind die unsichtbaren Konfigurationsordner (~/.config, ~/.local, .cache usw.), die beim Wiederherstellen massive Probleme verursachen können.
Wer zwischen verschiedenen Distributionen wechselt (Distro-Hopper) muss das unbedingt wissen: Andernfalls können persönliche Einstellungen, Programme und sogar das gesamte Desktop-Environment unbrauchbar werden!
cd /home/knilix && sudo nano backup_fedora_home.sh
Folgendes trage ich ein:
#!/bin/bash
# Quell (SCR)- und Zielverzeichnisse (DST)
SRC="/home/knilix/"
## Unter Bazzite (/run/media/system/):
#DST="/run/media/system/Data/Backup/Home-Verzeichnis/"
## Normale Distributionen (/mnt/):
DST="/mnt/exthdd1/Backup/Fedora-Home-Verzeichnis/"
# Prüfen, ob Ziel existiert, sonst anlegen
mkdir -p "$DST"
# rsync ausführen - komplettes Home-Verzeichnis
rsync -avh --progress --delete \
--exclude='.cache/' \
--exclude='*.tmp' \
--exclude='.local/share/Trash/' \
--exclude='.thumbnails/' \
--exclude='.gvfs/' \
--exclude='.Private/' \
"$SRC" \
"$DST"
echo "Backup abgeschlossen!"
Strg-x, y, Enter
Technische Erläuterung – speziell Bazzite: Bazzite basiert auf einem unveränderlichen (immutable) Systemlayout. Persistente Änderungen am Root-Dateisystem – wie das Anlegen eigener Mountpunkte unter /mnt oder /media – sind daher nicht ohne Weiteres möglich und überstehen in der Regel keinen Neustart. Bereits erkannte oder zuvor eingerichtete Datenträger werden während des Systemstarts jedoch automatisch eingebunden. Der automatische Mount erfolgt standardisiert unter /run/media/system/, weshalb dieser Pfad unter Bazzite als zuverlässiger Zielpfad für lokal angeschlossene Laufwerke genutzt werden kann.
Bei Verwendung von Bazzite müssen die Kommentarzeichen (#) einfach getauscht werden!
## Unter Bazzite (/run/media/system/):
DST="/run/media/system/Data/Backup/Persönlicher Ordner/"
## Normale Distributionen (/mnt/):
#DST="/mnt/exthdd1/Backup/Persönlicher Ordner/"
Datei ausführbar machen:
cd /home/knilix && sudo chmod +x backup_fedora_home.sh
Ausführen:
./backup_fedora_home.sh
Sobald der Befehl einmal durchgelaufen ist, arbeitet er bei allen weiteren Durchläufen inkrementell – also übernimmt er nur noch die Änderungen in den Quellordnern. Genau dafür ist rsync da – eine der genialsten Erfindungen seit Unix!
Info zum Script:
rsync -avh --delete führt standardmäßig inkrementelle Synchronisation durch. Das bedeutet:
- Nur geänderte oder neue Dateien werden übertragen.
- Unveränderte Dateien werden nicht erneut kopiert.
- Mit
--deletewerden Dateien, die im Quellverzeichnis gelöscht wurden, auch im Ziel gelöscht → Spiegelung. —–> Für mich ist das so ausreichend! Ich bin hierbei NICHT vor versehentlich gelöschten Dateien abgesichert, wenn das Rsync erneut gestartet wurde!
Das Restore
Wurde das System neu aufgesetzt mache ich mich an das Restore meiner Home-Dateien.
Restore-Befehl für normale Systeme:
rsync -avh --progress --delete --exclude='.cache/' --exclude='*.tmp' --exclude='.local/share/Trash/' --exclude='.thumbnails/' --exclude='.gvfs/' --exclude='.Private/' /mnt/exthdd1/Backup/Fedora-Home-Verzeichnis/ /home/knilix/
Restore-Befehl für Bazzite:
rsync -avh --progress --delete --exclude='.cache/' --exclude='*.tmp' --exclude='.local/share/Trash/' --exclude='.thumbnails/' --exclude='.gvfs/' --exclude='.Private/' /run/media/system/Data/Backup/Home-Verzeichnis/ /home/knilix/