Raspberry Pi – Datensicherung erstellen

Wer sich bereits schon einmal  mit dem Raspberry Pi auseinander gesetzt hat, weiß das der Speicher eine Schwachstelle des Raspberry Pi’s ist.
Denn SD-Karten haben nur eine begrenzte Lebensdauer, welche vor allem davon abgehängt, wie oft Daten auf von der Karte gelesen bzw. auf der Karte geschrieben werden.
Durch einer Fehlerhafte SD-Karte kommt es schnell zu Fehlern im Dateisystem, oder man verliert im schlimmsten Fall sogar alle darauf enthaltenen Daten!

Daher möchte ich hier zwei Methoden festhalten wie man den Raspberry Pi quasi „offline“ & „onlinesichert!

 

Möglichkeit 1 – Die „Offline“ Sicherung:

Wer aufwändige Konfigurationen und Software Installationen auf seinem Raspberry Pi durchgeführt hat. möchte sicherlich gerne eine komplette Sicherung seines Pi’s anlegen, welche alle Einstellungen & auch das komplette System enthält!
Dabei erstellt man eine komplette Image (*.img) Datei auf seinem Windows Rechner.
Das hat den Vorteil das man sein fertig eingerichtetes System immer wieder verwenden kann, ohne jedes mal von vorne Beginnen zu müssen.

Die Vorgehensweise zur Erstellung einer solchen Sicherung, ist ähnlich wie das aufspielen des Betriebssystems „Raspbian“, das ebenfalls als IMG-Datei vorliegt!

Einen entscheidenden Nachteil hat diese Sicherungsmethode aber, denn die erstellen IMG-Dateien werden sehr groß (genau so groß wie die jeweils verwendete SD-Karte), und brauchen auch recht lange zum erstellen!

Und so erfolgt die Sicherung mit dem „Win32 Disk Imager“:

  1. Man lädt sich die Software „Win32 Disk Imager“ herunter, und installiert diese!
  2. Anschließend fährt man seinen Raspberry Pi sauber herunter & entfernt den Netzstecker
    sudo shutdown -h now
  3. Als nächstes entnimmt man die SD-Karte aus dem Raspberry Pi, und gibt diese in einen Kartenleser seines Computers.
  4. Danach öffnet man die vorhin installierte Software „Win32 Disk Imager„, und wählt dort bei Speicherort einen beliebigen Speicherort für die zu erstellende IMG-Datei aus.
  5. Gleich daneben unter „Device“ wählt man nun das Laufwerk unter welchem Windows die SD-Karte anspricht aus.
  6. Zum Schluss klickt man auf „Read“, und das Tool, erstellt nun eine komplette Sicherung der SD-Karte, in Form einer IMG-Datei.  😉

 

 

Möglichkeit 2 – Die „Online“ Sicherung:

Der Raspberry Pi, ist aber auch in der Lage sich selbständig als komplettes Image zu sichern.
Dafür wird aber ein externe Sicherungsort, wie z.B. eine NAS oder eine angeschlossene USB-Festplatte benötigt!
Hierbei erfolgt die Sicherung mit dem  Linux Kommandodd„, das auch via Cronjob regelmäßig ausgeführt wird, bzw. werden kann.  😉

Der Vorteil bei dieser Methode ist, das die Sicherung voll automatisch läuft, und das der Raspberry Pi auch nicht heruntergefahren werden muss.
Außerdem bietet diese Sicherungsart auch die Möglichkeit, mehrere Versionen einer Sicherung auf zu bewahren.  😎

Aber diese Methode, hat natürlich Nachteile, den die Image-Dateien werden auch hier wieder sehr groß, und es wird zwingend ein externer Speicherort für das Backup benötigt!
(z.B.: eine NAS oder eine angeschlossene USB-Festplatte!)
Außerdem sollten während die Sicherung läuft, alle Anwendung & Dienste vorher gestoppt werden!

Und so richtet man die „Online“-Sicherung ein:

Falls noch nicht geschehen, muss man zuerst die angeschlossene USB-Festplatte oder die zu verwendende NAS bzw. deren Freigabe „mounten“.
Da es hierfür aber je nachdem ob man eine USB-Festplatte oder eine NAS-Freigabe verwendet verschiedene Möglichkeiten gibt, möchte ich hier an dieser Stelle nicht näher darauf eingehen, und gehe einmal davon aus, das man diesen Schritt bereits erledigt hat!
Wer dies noch nicht getan hat, der findet im Internet zahlreiche sehr gute & ausführliche Anleitungen wie man dies bewerkstelligt!
Evtl. werde ich zu einem späteren Zeitpunkt, noch einen eigenen Beitrag zu diesem sehr umfangreichen Thema schreiben!

Backup-Skript auf dem Raspberry Pi einrichten:

  1. Man erstellt sich ein Backup-Skript im „Home“ Verzeichnis des Benutzers „pi
    sudo nano /home/pi/Backup.sh
  2. Anschließend fügt man dort das Backup-Skript ein:
    #!/bin/bash
     
    # VARIABLEN - HIER EDITIEREN
    BACKUP_PFAD="/pfad/zum_backup_order"
    BACKUP_ANZAHL="5"
    BACKUP_NAME="RaspberryPiBackup"
    DIENSTE_START_STOP="service mysql"
    # 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}-$(date +%Y%m%d-%H%M%S).img bs=1MB
     
    # Starte Dienste nach Backup
    ${START_SERVICES} 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

    Und hier das Skript kurz erklärt:

    • BACKUP_PFAD“ – Gibt den Pfad zur gemounteten USB-Festplatte bzw. zum Share auf der NAS an
    • BACKUP_ANZAHL“ – Hier kann man die Anzahl der Versionen bestimmen. Also wie lange ältere Sicherung aufbewahrt werden sollen!
    • BACKUP_NAME“ – Gibt den Namen des Backup an
    • DIENST_START_STOP“ – Dienste die vor dem Backup gestoppt & anschließend wieder gestartet werden sollen
  3. Anschließend speichert man das Skript noch mit „STRG + X
  4. Im nächsten Schritt muss das soeben erstelle Backup-Skript auch noch ausführbar gemacht werden, und man verschiebt es am besten auch gleich nach „/usr/local/bin
    Dies geschieht mit:
    sudo chmod 755 /home/pi/Backup.sh
    sudo mv /home/pi/Backup.sh /usr/local/bin/Backup.sh
  5. Damit die Sicherung auch regelmäßig ausgeführt wird erstellt man mithilfe von „crontab“ einen „CronJob„:
    sudo crontab -e
  6. In einer neuen Zeile gibt man den Job sowie den Pfad zum Backup-Skript an:
    00 01 * * 0 /usr/local/bin/Backup.shHat man dies in einer neuen Zeile eingetragen, Speichern wir wieder ab mit „STRG + X“ und verlassen den Editor!

Permanentlink zu diesem Beitrag: https://blog.adminweb.at/raspberry-pi-datensicherung-erstellen/

4 Kommentare

Zum Kommentar-Formular springen

  1. Danke, kann man das Script auch manuell starten um zu testen ob es funktioniert?

    • Zulqarnain auf 15. September 2020 bei 12:35
    • Antworten

    Super erklärt:)

    • Mario auf 20. Oktober 2019 bei 20:01
    • Antworten

    Hallo, vielen dank fur die gute Beschreibung. Eine Frage hätte ich dazu noch: Wie müssen mehre Dienste eingetragen werden um automatisch gestoppt und wieder gestartet zu werden?

    1. Hallo Mario!

      Ich kann dir das leider nicht zu 100% beantworten, da ich in der Linux Welt selbst noch ziemlich neu bin und ich ehrlich gesagt dies bis dato auch noch nicht so oft gebraucht habe.

      Aber ich schlage so etwas gerne immer im Ubuntuusers Wiki nach.
      Vllt hilft dir das hier ja weiter 😉

      https://wiki.ubuntuusers.de/Cron/

      LG
      Daniel

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.