Skip to content

Datensicherung

Josef Spitzlberger edited this page Dec 30, 2023 · 4 revisions

Datensicherung für den CaravanPi notwendig?

Über diese Schritt-für-Schritt-Anleitung kann ein CaravanPi relativ schnell neu aufgebaut werden. Wenn man dann noch eine Kopie der fertig erstellten SD Karte vorrätig hat, ist der CaravanPi schnell wieder lauffähig. Dennoch gibt es auch im CaravanPi einige Daten, die sich zwar selten ändern, aber eben doch ändern. Um den CaravanPi dann dennoch schnell wieder in den letzten Stand versetzen zu können, ist eine Datensicherung sehr hilfreich.

Die Datensicherung sollte natürlich nicht auf dem Raspberry Pi stattfinden, da die SD Karte gerade in einem mobil eingesetzten Raspberry Pi schnell defekt werden kann. Das hier eingesetzte Tool rclone bietet eine ganze Reihe von Möglichkeiten, die Daten außerhalb des Raspberry Pi, also auf externen Speichern, zu speichern.

Welche Daten sollen gesichert werden?

Die nachfolgend dargestellte Datensicherung speichert nachfolgende Dateien auf einem externen Speicher:

  • crontabs der User pi und root
  • Defaultwerte des CaravanPi (Verzeichnis ~/CaravanPi/defaults)
  • MagicMirror Konfiguration und Cascading Style Sheets Daten (~/MagicMirror/config und .../css)
  • das shutdown Skript des Ein/Aus-Tasters
  • das Backup Skript selbst

Backup Skript installieren

Ich habe inzwischen ein eigenes github Repository erstellt, das sich mit der Sicherung meiner Raspberrys beschäftigt. Dieses nutze ich nun auch für die Sicherung meiner CaravanPis

Das Repository ist zu finden unter https://github.com/spitzlbergerj/Raspberry-Pi-Backup-Cloud Bitte den Instruktionen dort folgen.

Die Konfigurationsdatei backup_name.txt sieht dann bei mir so aus

CaravanPiSSD
15
Sharepoint
Backup/Geraete/Raspberry

Die Konfigurationsdatei backup_dirs.txt sieht dann bei mir so aus

/home/pi/CaravanPi/defaults
/home/pi/MagicMirror/css/custom.css
/home/pi/MagicMirror/config/config.js
/usr/local/bin/pishutdown.py

Das zusätzliche Backupskript backup2ndScript.sh muss um die Sicherung der MariaDB Datenbank ergänzt werden. Wie das geht erläutere ich im Kapitel MariaDB

Die nachfolgende Dokumentation bezieht sich auf das alte Backup Verfahren, das inzwischen obsolet geworden ist.

ALT -- Installieren und Konfigurieren

rclone installieren und konfigurieren

Das Skript rclone wird über nachfolgendes Kommando installiert:

curl https://rclone.org/install.sh | sudo bash

Ein neuer Remote-Speicher kann über nachfolgendes Kommando eingerichtet werden

rclone config

Für mein Google Drive mache ich nachfolgende Eingaben. Bitte beachten Sie, dass Sie vor diesem Schritt auf der Google Developer Console einen Account anlegen müssen und Ihre client_id und Ihren client_secret ermitteln müssen. Da Google die Verfahrensschritte hierzu immer wieder ändert, gebe ich hier keine Anleitung. Auf der rclone Website findet sich jedoch der Hinweis wie die Schritte aktuell sind.

n/s/q> n
name> MeinGoogleDrive
storage> 18 <Google Drive> (bitte kontrollieren, ändert sich von Version zu Version)
client_id> IhreGeheimeClientID
client_secret> IhrGemeinesPasswort
scope> 1 
root_folder_id> <leer lassen>
service_account_file> <leer lassen>
Edit advanced config? (y/n) n
Remote config, Use auto config? y

An dieser Stelle ist eine Sicherheitsüberprüfung erforderlich, die davon abhängt, wie Sie ihr Google Konto gesichert haben. Folgen Sie den Anweisungen, die rclone hier ausgibt. Danach geht es weiter:

Configure this as a team drive? n
Yes this is OK y

Nach diesen Schritten haben Sie Zugriff auf Ihren Cloudspeicher. Dies können Sie testen mit folgendem Kommando

rclone -v lsf MeinGoogleDrive:

Nun sollte Ihnen Ihr Google Drive aufgelistet werden.

Um lokale Daten auf einen externen Speicher zu synchronisieren, richten wir nun in gleicher Weise ein lokales Verzeichnis in rclone ein.

rclone config
n/s/q> n
name> CaravanPi
storage> 28 <Local Disk> (bitte kontrollieren, ändert sich von Version zu Version)
nounc> <leer lassen>
Edit advanced config? <leer lassen>
Remote config, Use auto config? yes this is OK

Da wir unser Backup Skript schließlich als root starten werden (u.a. um die Crontab des Users root sichern zu können), kopieren wir das rclone Config File noch zum User root:

sudo cp /home/pi/.config/rclone/rclone.conf /root/.config/rclone

lokales Verzeichnis für die Backups anlegen

Alle Backups speichern wir zunächst lokal und synchronisieren diese dann mit unserem Cloudspeicher. Das hat den Vorteil, dass bei intakter SD-karte ein Backup schnell zurückgespielt werden kann, ohne dass der Cloudspeicher benötigt wird.

Wir legen ein Verzeichnis an:

mkdir /home/pi/Backup

In diesem Verzeichnis werden sich dann mehrere Generationen von Backups befinden. Wie viele Generationen Sie aufbewahren wollen und können, hängt insbesondere auch davon ab, wie groß Ihre SD-karte im CaravanPi ist.

Backup-Skript konfigurieren und testen

Das backup-Skript muss noch an Ihre Gegeneheiten angepasst werden:

nano /home/pi/CaravanPi/backup/backup-caravanpi.sh

Ändern Sie in den ersten Zeilen die Directory-Pfade auf Ihre Pfade ab und ersetzen Sie ggf. die Bezeichnungen Ihrer rclone Drives:

# VARIABLEN - HIER EDITIEREN
BACKUP_PFAD_LOKAL="/home/pi/Backup"
BACKUP_PFAD_CLOUD="/Backup/Geräte/Raspberry/CaravanPi"
BACKUP_ANZAHL="30"
BACKUP_NAME="caravanpi-config-and-scripts"
BACKUP_DIR=${BACKUP_NAME}-$(date +%Y%m%d-%H%M%S)
BACKUP_RCLONE_LOKAL="CaravanPi"
BACKUP_RCLONE_CLOUD="GoogleDriveSJJ"

Weitere Änderungen sind nicht notwendig. Bitte legen Sie Ihr lokales Backup Verzeichnis nicht als Unterverzeichnis von ~/CaravanPi an, da ansonsten das Updaten von CaravanPi über git Probleme bereiten kann.

Um das Backup Skript zu testen, gehen wir wie folgt vor:

sudo /home/pi/CaravanPi/backup/backup-caravanpi.sh

Solange wir die maximale Anzahl der angegebenen Sicherungen noch nicht erreicht haben, wird eine Fehlermeldung erscheinen, die wir ignorieren können:

alte Sicherungen loeschen .....
rm: fehlender Operand
„rm --help“ liefert weitere Informationen.

crontab konfigurieren

Nun können wir die Datensicherung als festen Bestandteil in die Crontab des Users root aufnehmen:

sudo crontab -e

Die Crontab sollte in etwa so aussehen:

# crontab root
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# min  hour  dayofmonth  month  dayofweek(0=Sonntag)   command
#
# beim Neustart Skript fuer Sensor starten
@reboot python3 /home/pi/CaravanPi/pir/pir.py 120 1

# Backup Dateien starten
@reboot sleep 300 && /home/pi/CaravanPi/backup/backup-caravanpi.sh >>/home/pi/CaravanPi/.log/backup-caravanpi.log 2>&1
01 02 * * * /home/pi/CaravanPi/backup/backup-caravanpi.sh >>/home/pi/CaravanPi/.log/backup-caravanpi.log 2>&1

Die Datensicherung wird damit bei jedem Start des Raspberry Pi gestartet und jede Nacht um 02:01 Uhr.

Quellen

https://www.bitblokes.de/rclone-rsync-fuer-die-cloud-backups-in-nextcloud-und-andere-cloud-anbieter

CaravanPi Wiki

1 Installationsanleitung

2 Bauanleitung

Grundaufbau

Sensoren, etc. installieren

Anzeigen installieren

Raspberry stabilisieren

Platine entwerfen

3 ursprüngliche Entwicklung

4 Dokumentation

5 Updates

ab hier altes WIKI, muss noch umgezogen werden

XX = in Bearbeitung NEU = neue Funktion in letzter Version

Einbau im Caravan

Inbetriebnehmen und Kalibrieren

CaravanPi Updates

Erweiterungen

Grafische Auswertungen

Statuswebsite

weitere Sensoren

Clone this wiki locally