-
Notifications
You must be signed in to change notification settings - Fork 7
Datensicherung
Ü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.
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
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.
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
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.
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.
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.
https://www.bitblokes.de/rclone-rsync-fuer-die-cloud-backups-in-nextcloud-und-andere-cloud-anbieter
CaravanPi - smart Caravan based on Raspberry Pi
(c) Josef Spitzlberger, Schloss Lustheim, Munich, Germany, 2019ff
CaravanPi Wiki
- Testaufbau
- Raspberry Pi OS installieren und initial konfigurieren
- MagicMirror installieren
- CaravanPi Skripte installieren
- MagicMirror vorbereiten & updaten
- OBSOLET V2 - Bottle Framework installieren
- Ein-/Aus-Schalter installieren
- Bewegungsmelder installieren
- Hupe/Buzzer installieren
- weitere Taster installieren
- OBSOLET V2 - Konfigurations-Website einrichten
- Temperatur Sensoren installieren
- Temperatur Sensoren anzeigen
- Gasflaschenwaage HX711 installieren
- Gasflaschenfüllstand anzeigen
- mehrere Gasflaschen Waagen anschließen
- I2C-Bus einrichten
- Klimasensor installieren
- Klimasensor BME280 anzeigen
- Klimasensor BME680 anzeigen
- GPIO Ports mit MCP23017 erweitern
- Lage-Sensor installieren
- Lage-Sensor anzeigen
- I2C Extender - langes Kabel
- Tank-Füllstände auslesen
- LEDs zur Lageanzeige
- RGB-LEDs am MCP23017 betreiben
- LED Einbau im Testaufbau
- Caravan ausrichten im Testaufbau
ab hier altes WIKI, muss noch umgezogen werden
XX = in Bearbeitung NEU = neue Funktion in letzter Version
- Stromversorgung Grundsätzliches
- Testgerät bauen
- Verkabeln am Caravan
- Gasflaschen-Waage bauen
- LEDs am Caravan anbringen
- Temperaturfühler im Kühlschrank anbringen
- Klimasensoren innen & außen anbringen
- Stromversorgung Raspberry Pi
- Stromversorgung Monitor
- WLAN im Caravan
- CaravanPi in Betrieb nehmen
- Gasflaschenwaage in Betrieb nehmen
- Defaultwerte für Lage, etc eintragen
- NEU XX Vorüberlegungen
- NEU XX MariaDB installieren
- NEU XX CaravanPi Datenbank anlegen
- NEU XX phpmyadmin installieren
- NEU XX Grafana installieren
- NEU XX Grafana auf MagicMirror anzeigen
- NEU XX Pythonzugriff auf MariaDB
- NEU XX Problembehandlung MariaDB, Grafana
- NEU XX Vorüberlegungen
- NEU XX Flask installieren
- NEU XX Status-Website einrichten
- NEU XX vorhandene Websites migrieren
- NEU XX 230V Eingang prüfen
- NEU XX 12V Batterie prüfen
- NEU XX Gassensor