Skip to main content

Raspi Backup

Raspi Sicherung auf externes freigegebenes Laufwerk (NAS)

Mit der unten aufgeführte Installationsanleitung kannst du ein Backup der kompletten Raspberry Pi SDCard im laufenden Betrieb machen. Dabei kann der Intervall der Datensicherung im Cronjob frei gewählt werden. Das Script Backup.sh erstellt ein Abbild der SDCard als Imagedatei in dem gewählten Verzeichnis in voller Größe der SDCard. Mit PiShrink wird dann die Imagedatei auf die tatsächlich genutzte Größe reduziert. Als Zielverzeichnis für die Datensicherung wird ein freigegebenes Laufwerk (CIFS/SMB) genutzt und im System verbunden. Das Backup kann eine angegebene Anzahl an Sicherungen vorhalten, bei erreichen der eingestellten Anzahl wird die älteste Sicherung beim nächsten Backup automatisch gelöscht.

Anfangspfad hier in /home/pi
Die farbig markierten Texte sind mit eigenen Daten zu füllen.

NAS-Laufwerk fest verbinden:

sudo mkdir /media/nas
sudo mount -t cifs -o username=backup,password="password",file_mode=0755,dir_mode=0755 //192.168.x.x/freigabe /media/nas

PiSchrink zum Komprimieren des Images hinzufügen:

mkdir shrink
sudo wget raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh -P ~/shrink
sudo mv shrink/pishrink.sh /usr/local/bin/pishrink.sh
sudo chmod 755 /usr/local/bin/pishrink.sh

Folgendes Bash-Script anlegen:

sudo nano /home/pi/Backup.sh

#!/bin/bash

# VARIABLEN - HIER EDITIEREN
BACKUP_PFAD="/media/nas"
BACKUP_ANZAHL="3"
BACKUP_NAME="Raspi"
BACKUP_ZEIT=$(date +%Y%m%d-%H%M%S)
DIENSTE_START_STOP="service fhem"'

# ENDE VARIABLEN

# Stoppe Dienste vor Backup
${DIENSTE_START_STOP} stop

# Backup mit Hilfe von dd erstellen und im angegebenen Pfad speichern
dd if=/dev/mmcblk0 of=${BACKUP_PFAD}/${BACKUP_NAME}-${BACKUP_ZEIT}.img bs=1MB

# Starte Dienste nach Backup
${DIENSTE_START_STOP} start

# Alte Sicherungen die nach X neuen Sicherungen entfernen
pushd ${BACKUP_PFAD}; ls -tr ${BACKUP_PFAD}/${BACKUP_NAME}* | head -n -${BACKUP_ANZAHL} | xargs rm; popd

# Mit PiShrink die Backup-Datei verkleinern
pishrink.sh ${BACKUP_PFAD}/${BACKUP_NAME}-${BACKUP_ZEIT}.img

# E-Mail versenden
echo "Raspi Backup wurde erstellt." | mail -s "RaspiBackup" meine.mail@fluppix.de

Backupscript Berechtigungen anpassen und verschieben

sudo chmod 755 /home/pi/Backup.sh
sudo mv /home/pi/Backup.sh /usr/local/bin/Backup.sh

Einrichten eines Task zur Ausführung des Backup jeden Sonntag um 1:00 Uhr

sudo crontab -e
00 01 * * 7 /usr/local/bin/Backup.sh