Ich verwende solaranzeige auf einem raspi schon seit Jahren und sicherte auf einen USB-Stick.
Als ich vor kurzem die Sicherungen überprüfte, stellte ich mit Entsetzen fest, dass schon seit Monaten keine Backups mehr erstellt wurden, da sich der Stick gelockert hatte. Da ich vor kurzem die Sicherung meiner persönlichen Daten lokal auf die Fritzbox und zusätzlich in die Cloud umgestellt hatte, habe ich das auch für den raspi und solaranzeige verwendet.
An der Fritzbox im lokalen Netz habe ich ein 2TB-USB-Laufwerk als Sicherungsmedium über einen Windows-Share "Fritzbox" angeschlossen.
Für den Fall, daß meine Geräte durch ein Naturereignis vernichtet werden, habe ich beim Cloud-Provider pcloud einen 2TB Account gekauft (Einmalerlag, kein Monatsbeitrag).
Ich verwende die in diesem Forum beschriebenen Backup-Routinen zur Erstellung eines lokalen Backups, darauf gehe ich nicht näher ein.
Nun zur Cloud:
Es gibt da eine coole Software für Linux, Windows und Android namens rclone, mit der man ein copy bzw. rsync von lokalen Daten in die Cloud (70 verschiedene Clouds sind unterstützt) und auf Windows-Shares per command line utility durchführen kann.
Informationen/Dokumentation gibt es auf https://rclone.org/
Ich verwende rclone sowohl zum Sichern meiner persönlichen Daten vom Windows-PC als auch für die Solaranzeige und meinen Home Assistant server. In windows werden meine Daten-Ordner gesynct. In den Linux-Systemen erfolgt cron-gesteuert in der Nacht der Backup auf lokale /backup Verzeichnisse, die anschliessend mit rclone auf die Fritzbox und auf pcloud gesichert werden.
Die installation von rclone ist relativ einfach, Beschreibung siehe https://rclone.org/install/
Ich melde mich via ssh (putty) bei der Solaranzeige als root an und gebe folgendes Kommando ein:
Code: Alles auswählen
curl https://rclone.org/install.sh | sudo bash
Den Pfad für die zukünftige config Datei ( /root/.config/rclone/rclone.conf ) finde ich mit:
Code: Alles auswählen
rclone config paths
Code: Alles auswählen
rclone config
Die Doku ist sehr ausführlich und detailliert, z.B. für meinen provider pcloud: https://rclone.org/pcloud/
Das anschliessende Frage- und Antwortspiel laut der Dokumantation durchgehen und es entsteht eine Config Datei.
Eine vorhandene Datei kann ich mir anzeigen lassen:
Code: Alles auswählen
rclone config show
Code: Alles auswählen
[pcloud]
type = pcloud
hostname = eapi.pcloud.com
username = xxxuser
password = xxxpass
token = {"access_token":"xxxxxx","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}
[fritzbox]
type = smb
host = 10.0.0.138
user = fritz9999
pass = yyypass
spn = Fritzbox/fritzbox_disk/
auf der Platte gibt es ein Verzeichnis solaranzeige/backup. Eine Sicherung führe ich durch mit:
Code: Alles auswählen
rclone sync -v --size-only /backup fritzbox:Fritzbox/fritzbox_disk/solaranzeige
Code: Alles auswählen
rclone sync -v --size-only --multi-thread-streams=1 /backup pcloud:solaranzeige
Desgleichen werden in /backup gelöschte Dateien beim rsync auch remote gelöscht.
Das Ganze passiert in einem script backupclone.sh
Code: Alles auswählen
#!/bin/bash
# kopieren des /backup Verzeichnisses auf fileserver
echo " " > /var/log/backupclone.log
#
echo $(date "+%Y/%m/%d %H:%M:%S") "backupclone: rclone to pcloud" >> /var/log/backupclone.log
echo " " >> /var/log/backupclone.log
#
#
rclone sync -v --size-only --multi-thread-streams=1 /backup pcloud:solaranzeige >> /var/log/backupclone.log 2>&1 || ntfy pub -title solaranzeige ha Rclone Backup to ploud: ERROR
#
# ntfy ist ein Programm, das eine Nachricht an mein Smartphone schickt.
#
echo $(date "+%Y/%m/%d %H:%M:%S") "backupclone: rclone to fritzbox" >> /var/log/backupclone.log
echo " " >> /var/log/backupclone.log
#
rclone sync -v --size-only /backup fritzbox:Fritzbox/fritzbox_disk/solaranzeige >> /var/log/backupclone.log 2>&1 || ntfy pub -title solaranzeige ha Rclone Backup to fritzbox: ERROR
#
echo $(date "+%Y/%m/%d %H:%M:%S") "backupclone: finished" >> /var/log/backupclone.log
Code: Alles auswählen
# Create a backup daily of solaranzeige database at 00:05
# clone it to pcloud and fritzbox at 07:00
#
05 00 * * * root /root/backupdb.sh
00 07 * * * root /root/backupclone.sh