Automatisiertes RaspiBackup – Wie geht das?

Das RaspiBackup wird normalerweise so durchgeführt das Sie den Raspberry Pi zuerst herunterfahren und die SD Karte oder andere Speichermedium entfernen. Jetzt kann z.B. die SD Karte mit Tool Etcher an einem PC gelesen und gesichert werden, so bekommen Sie ein RaspiBackup. Der Raspberry Pi ist oft fest verbaut, Gehäuse oder Hutschiene, etc. Damit Sie nicht jedes mal für ein RaspiBackup Gerät ausbauen müssen, gibt es eine Methode ohne die Speichermedium zu entfernen. Hierbei wird ein Image erzeugt, das Sie ohne Probleme wieder auf eine Speichermedium einspielen können und immer zu letzten Sicherungspunkt zurückkehren.

RaspiBackup
RaspiBackup automatisch sichern auf NFS Freigabe

Die Lösung für RaspiBackup

Zuerst müssen Sie sich entscheiden auf welches Medium Sie das RaspiBackup bzw. Image Datei speichern. So können es auf Raspberry Pi einem angeschlossenen Speichermedium wie zum Beispiel ein USB Stick oder USB SSD Festplatte * speichern. Aber das ist nicht alles, Sie haben auch die Möglichkeit das RaspiBackup über Heimnetzwerk an einen NAS Server oder NFS Server zu sichern. Ich zum Beispiel habe auch ein Nextcloud Server im Heimnetz und er wird dann für Datensicherung benutzt.

Nextcloud NAS Funktion
Abbildung Nr. 1 – Nextcloud NFS Funktion wird für RaspiBackup benutzt

Sie können auch separat auf einen Raspberry Pi NAS Server oder NFS Server installieren und für Datensicherung benutzen. Die Netzwerk-Freigabe NFS muss aber erst auf dem Raspberry Pi gemountet werden damit Sie auch Zugriff darauf haben.

Was ist eine NFS Freigabe?

NFS oder Network File System ist ein stabiles und gut funktionierendes Netzwerk-Protokoll von Sun, um Dateien über das lokale Netzwerk auszutauschen. Dabei werden die Dateien nicht wie z. B. bei FTP übertragen, sondern die Benutzer können auf Dateien, die sich auf einem entfernten Rechner befinden, so zugreifen, als ob sie auf ihrer lokalen Festplatte abgespeichert wären. Ist NFS nicht vorhanden, lässt es sich sehr schnell installieren. Folgende Pakete und deren Abhängigkeiten müssen über die Paketverwaltung installiert werden:

Wenn der Rechner als Server dienen soll, der Dateien bereitstellt:

sudo apt-get install nfs-kernel-server

Wenn der Rechner nur als Client agieren soll, der auf andere Freigaben zugreift:

sudo apt-get install nfs-common

NFS Freigabe als Speicher für RaspiBackup

Als erstes was Sie tun müssen ist herausfinden wie heißt ihre Primäre Raspberry Pi Partition. Beim Raspberry Pi OS welche ist auf eine SD Karte installiert ist mmblck0, bei einen USB Stick oder SSD Festplatte sda. Diese Bezeichnungen werden wir später in der Anleitung gebraucht. Wenn Sie ein alternatives Betriebssystem benutzen dann müssen Sie die Bezeichnung dementsprechend anpassen. Der Name von Primäre Partition finden Sie heraus mit:

sudo fdisk -l
Verbatim Vi550 S3 SSD, internes SSD-Laufwerk mit 512 GB Datenspeicher, Solid State Drive mit 2,5'' SATA III Schnittstelle und 3D-NAND-Technologie, schwarz
  • GESTEIGERTE PRODUKTIVITÄT: Dank Hochgeschwindigkeits-3D NAND-Flash Chips bietet die Vi550 Lesegeschwindigkeiten von bis zu 550 MB/s und ist damit bis zu 20 x schneller als eine Standardfestplatte
  • VERLÄNGERT LEBENSDAUER: Mit einem MTBF-Rating von 2 Millionen Stunden und einem TBW-Rating von bis zu 480 TB ist die Vi550 eine hochwertig ausgestattete SSD, auf die Sie sich verlassen können
  • EFFIZIENTE TECHNOLOGIE: Unsere internen SSD-Laufwerke sind geräuschärmer als Festplatten und erzeugen zudem weniger Wärme – damit verlängert sich auch die Akku-Laufzeit Ihres Laptops
  • ROBUST & LANGLEBIG: Die Vi550 von Verbatim besitzt keine empfindlichen Komponenten mit beweglichen Teilen, wodurch sie im Gegensatz zu herkömmlichen Festplatten extrem stoßfest ist
  • LIEFERUMFANG: 1 x Vi550 S3 SSD mit 512 GB Speicherkapazität, internes SSD-Laufwerk von Verbatim, 7 x 69,9 x 100,5 Millimeter, 45 g
Raspberry Pi - fdisk Befehl
Abbildung Nr. 2 – Primäre Partition

Wie Sie in Abbildung Nr. 2 sehen können, meine Raspberry Pi OS ist auf eine USB SSD Festplatte * installiert und dafür ist Bezeichnung für Primäre Partition sda. Die NFS Freigabe habe ich in Nextcloud aktiviert wie die Abbildung Nr. 1 zeigt, wenn Sie andere Dateiserver besitzen, z.B. Synology, Netgear oder Ähnliches, dann NFS Freigabe mit ausreichend Speicherplatz gemäß Anleitung einrichten.

Raspberry Pi vorbereiten

Mit SSH Client Putty oder Terminal Verbindung mit Raspberry Pi herstellen und Einhängepunkt für NFS Freigabe einrichten.

sudo mkdir -m 777 /media/backup

Das Verzeichnis backup wird erzeugt, die Datei sind für alle lesbar, beschreibbar und ausführbar. Weiter geht mit mounten NFS Freigabe:

sudo mount 192.168.xx.xx:/media/backup /media/backup

Sie haben keine Fehlermeldung erhalten, dann hat es funktioniert. Wir wollen jetzt einhängen von NFS Freigabe automatisieren, wenn z.B. Raspberry Pi neu startet wird NFS Speicher gemountet. Dafür müssen wir Datei fstab anpassen:

Was ist fstab?

Die Konfigurations-Datei fstab enthält nötige Informationen, um das Einhängen von Partitionen ganz oder teilweise zu automatisieren. Bei Linux Systemen werden auf Basis der Datei fstab die entsprechenden mount Units erstellt.

sudo nano /etc/fstab
RaspiBackup fstab anpassen
Abbildung Nr. 3 – Datei fstab Anpassung

192.168.XX.XX ist die IP-Adresse verwendeten NFS-Servers. Fügen Sie am Ende der Datei fstab Folgendes hinzu:

192.168.XX.XX:/media/backup /media/backup nfs rsize=8192,wsize=8192,timeo=14,intr,noauto,x-systemd.automount 0 0

Schließen und speichern Sie die Datei mit STRG + X. Als nächstes erstellen wir das Skript für automatisiertes RaspiBackup das später jeder PI im Netzwerk verwenden kann:

cd /home/pi
sudo nano backup.sh

Wird eine leere backup.sh Datei erstellt, kopieren wir unser folgendes rein:

#!/bin/bash
#
# Automate RaspiBackup
#
# Usage: backup.sh {path} {days of retention}
#
# Declare vars and set standard values
backup_path=/media/backup
retention_days=7

# Check that we are root!
if [[ ! $(whoami) =~ "root" ]]; then
echo ""
echo "**********************************"
echo "*** This needs to run as root! ***"
echo "**********************************"
echo ""
exit
fi

# Check to see if we got command line args
if [ ! -z $1 ]; then
   backup_path=$1
fi

if [ ! -z $2 ]; then
   retention_days=$2
fi

# Create trigger to force file system consistency check if image is restored
touch /boot/forcefsck

# Perform RaspiBackup
dd if=/dev/mmcblk0 of=$backup_path/$HOSTNAME.$(date +%Y%m%d).img bs=1M

# Remove fsck trigger
rm /boot/forcefsck

# Delete old RaspiBackups
find $backup_path/$HOSTNAME.*.img -mtime +$retention_days -type f -delete

Machen Sie das Skript ausführbar:

sudo chmod +x /home/pi/backup.sh

Am Ende erstellen Sie noch einen Cronjob, um den RaspiBackup automatisch auszuführen, vielleicht leichter geht mit Crontab Guru.
Cronjob erstellen wir mit Befehl:

sudo crontab -e

Am Datei-Ende fügen Sie Zeile ein:

* 3 * * * sudo /home/pi/backup.sh

Das RaspiBackup wird dann täglich um 3:00 ausgeführt, Sie müssen natürlich Cronjob nach Ihren Bedürfnissen anpassen. Die NFS Freigabe können Sie natürlich auch für andere Backups nutzen, z.B. ich verwende NFS Freigabe für FHEM und Homebridge Backup.

(Visited 653 times, 1 visits today)