Hallo zusammen,
ich möchte Euch meine Backup Variante für den Raspberry vorstellen:
Dazu habe ich ein Script erstellt das per CronJob eingeplant wird.
Es sichert den Raspberry komplett auf ein SMB Share (zb. auf eine Windowsfreigabe).
Gesichert wird die HAUPT-Partition /nicht die Bootpartition.
Mann kann dann einzelne Files aus dem Backup wiederherstellen oder auch die Komplette SD Card.
Funktionsweise:
Zunächst wird die Windows Freigabe gemountet.
Beim Ersten Vorgang wird mit DD ein leeres DD Image auf dem Netzlaufwerk erstellt, das etwas mehr Platz einnimmt als die zu sichernde Partition. Danach wird ein Filesystem in diesem Image typ ext4 erzeugt und die Dateien dort rein per rsync gebackupt.
Sofern der Platz des Images bei einem späteren Lauf nicht mehr reicht, wird das image zuerst um ein paar MB vergrößert.
Bei den nächsten Backup-Läufen wird mit RSYNC die Änderungen in dieses Image übertragen:
Anleitung:
Script runterladen:
cd ~
wget http://dl.e-hosting24.net/raspberry_scripts/backup_pi
wget http://dl.e-hosting24.net/raspberry_scripts/backup_pi_exclude.txt
chmod u+x,g+x ./backup_pi
Script Anpassen:
nano ./backup_pi
Konfiguration im Script anpassen , alle in <> gesetzen Einträge müssen angepasst werden
# ---- CONFIGURATION ----
#Pfad wohin die Freigabe gemountet werden soll, kann so belassen werden.
TARGETDIR="/mnt/backup"
#Pfad für das das Image (dorthin wird später per rsync reinychronisiert, kann so belassen werden
TARGETDIRFILE="/mnt/backup_file"
# Hier den Mount Befehl ggf. entsprechend anpassen wenn zb. per NFS gemountet wird.
# Beispiel zeigt eine Windowsfreigabe
TARGET_MOUNT=" -t cifs //<SERVERNAME>/<SHARE> $TARGETDIR -o user=<WIN_USER>,password=<WIN_PASSWORD>"
# Name des Images wohin später rein synchronisiert wird, wird auf dem Share erstellt
TARGET_IMG="<IMAGE_NAME>.img"
# Zu sichernde Paritition, kann in der Regel gelassen werden.
PARTITION="/dev/mmcblk0p2"
#EXCLUDE File
EXCLUDEFILE="/home/pi/backup_pi_exclude.txt"
#Wenn mail auf dem PI eingerichtet ist, kann die Sicherung per Mail informieren.
MAILINFO="<EMAIL-ADRESSE>"
# --- END CONFIGURATION ---
Gerne jetz mal manuell starten:
sudo ./backup_pi
Achtung, das Script kann eine ganze weile laufen beim ersten Mal!
Sicherung einplanen
crontab -e
Folgender Eintrag in der crontab sichert den Raspberry 1x pro Woche um 4:15 Uhr
15 4 * * 7 sudo /home/pi/backup_pi
danach crontab speichern.
Recovern
Ein Recovern geht wie folgt.
Einzelne Dateien:
Wenn Verzeichnisse noch nicht vorhanden
sudo mkdir /mnt/backup
sudo mkdir /mnt/backup_file
sudo mount -t cifs //<SERVERNAME>/<SHARE> $TARGETDIR -o user=<WIN_USER>,password=<WIN_PASSWORD>
sudo mount -o loop /mnt/backup/<IMAGE_NAME>.img /mnt/backup_file
nun können die Einzelnen Dateien aus /mnt/backup_file mit copy etc. wieder zurückgeholt werden.
Komplett:
Neue SD-Karte mit Ursprünglichem Image auf SD-Karte flashen.
ggf. sudo raspi-config ausführen und vergrößen
Wenn Verzeichnisse noch nicht vorhanden
sudo mkdir /mnt/backup
sudo mkdir /mnt/backup_file
sudo mount -t cifs //<SERVERNAME>/<SHARE> $TARGETDIR -o user=<WIN_USER>,password=<WIN_PASSWORD>
sudo mount -o loop /mnt/backup/<IMAGE_NAME>.img /mnt/backup_file
sudo rsync -aAXvE --exclude-from=/mnt/backup_file/home/pi/backup_pi_exclude.txt /mnt/backup_file/ /
Wenn man zwischenzeitlich eine Kernelupdate durchgeführt oder die Bootpartition geändert hat hat, dann sollte man dies vor dem Recovern mit rsyn manuell noch durchführen.
Info zur Basis-Konfiguration Mailversand hier: Post 386924