NEWS
[Frage] Backup
-
MOD-Edit by eric2905; 15.05.2017 / 19:22; Betreff geändert
Hallo,
ich bin es mal wieder mit einer eher allgemeinen Frage.
Wie erstelle ich eigentlich ein automatisiertes Backup z.B. einmal pro Tag.
Ich sehe da prinzipiell 4 Lösungen
a) eine Image Datei des Raspberry zu erstellen (Vorteile liegen auf der Hand, die Nachteile aber auch, wie sehr große Dateien, nicht wirklich aus laufenden Betrieb möglich, doch sehr manuell und Zeitaufwand je nach gräße des Flash sehr hoch)
b) Verwenden der Backup Funktion vom ioBroker, Nachteil, muss manuell angestossen werden oder man müsste sich ein bash-Datei erstellen mit einem CRON Job.
c) ist es möglich den Ordner "/opt/iobroker/" per FTP z.B. per Filezilla herunterzuladen und bei Bedarf dann wieder einzuspielen. Da es auch einige Backup-Programme gibt die FTP unterstüzen wäre dies der bevorzugte Weg, da automatisierbar. Bleibt die Frage sind in den Verzeichnissen alle relevanten Dateien oder muss noch etwas anderes kopiert werden.
d) Ist es möglich aus ioBroker heraus z.B. durch ein Skript ein Backup zu erstellen z.B. auf einem NAS? Das wäre dann natürlich die ultimative Lösung.
Andreas
-
Hi RandyAndy,
a) eine Image Datei des Raspberry zu erstellen (Vorteile liegen auf der Hand, die Nachteile aber auch, wie sehr große Dateien, nicht wirklich aus laufenden Betrieb möglich, doch sehr manuell und Zeitaufwand je nach gräße des Flash sehr hoch) `
Moeglich mit vor und nachteilen wie du bereits geschrieben hast
b) Verwenden der Backup Funktion vom ioBroker, Nachteil, muss manuell angestossen werden oder man müsste sich ein bash-Datei erstellen mit einem CRON Job. `
Die jetzt meist gaengliche loesung
c) ist es möglich den Ordner "/opt/iobroker/" per FTP z.B. per Filezilla herunterzuladen und bei Bedarf dann wieder einzuspielen. Da es auch einige Backup-Programme gibt die FTP unterstüzen wäre dies der bevorzugte Weg, da automatisierbar. Bleibt die Frage sind in den Verzeichnissen alle relevanten Dateien oder muss noch etwas anderes kopiert werden. `
Ja, im grundegenommen auch vergleichbar miet option b)
Mache ein backup und setzte dieses extern, dafuer gibt es verschiedenen wegen. Z.b. die data runterladen under auf einen cloud zu setzen.
d) Ist es möglich aus ioBroker heraus z.B. durch ein Skript ein Backup zu erstellen z.B. auf einem NAS? Das wäre dann natürlich die ultimative Lösung. `
Nein im moment noch nicht, auser du stoest aus iObroker ein shel script an (im grundegenommen option b.
zum letzteren gibt es ein trello ticket um import/export von backup per iobroker GUI zu realisieren:
Greetz,
Dutch
-
Auf meinem Windows 10 System benutze ich die Aufgabenplanung und starte eine bat die ioBroker anhält und Backup von ioBroker durch sich selbst durchführt und ioBroker wieder startet.
c: cd C:\ioBroker call iobroker stop call iobroker backup call iobroker start
Eine halbe Stunde später lasse ich dann Duplicati vom kompletten ioBroker Verzeichnis eine Sicherung per FTP auf mein NAS druchführen. Dazu halte ich dann ioBroker nicht nochmals an, hoffe aber, dass in Kombination der zwei Sicherungen alles bei einem "Notfall" verfügbar ist.
Ich bin aber noch am überlegen, ob ich in die bat nicht den Duplicati Aufruf mit aufnehmen, dann würde ioBroker auch beim kompletten sichern des ioB-Verzeichnisses angehalten. `
Danke erst mal für Deine Antwort.
Ich nehme mal an, Du hast den ioBroker unter Windows installiert.
Ich verwende aber den Raspberry, insofern müste ich ein Shell Skript erzeugen.
Was mich noch stört ist die Tatsache, dass ich bei allen Lösungen (image, FTP, ioBRoker backup) den Dienst ioBroker immer anhalten muss. Das bedeutet natürlich auch, dass während dieser Zeit die Automation nicht zur Verfügung steht.
Da ich dies in meiner Ferienwohnung verwende die per VPN (Standleitung) mit Zuhause verbunden ist, laufen während dieser Zeit auch die Skripte nicht, die Gäste haben keinen Zugang zu einigen Systemen z.B. zur Klimaanlage die über ioBRoker bedient wird. Auch das Ziel die Homematic Skripte mittelfristig abzulösen sind dann nicht wirklich umsetzbar, da einige System wie z.B. die Feuchtigkeitserkennung, die Regenerkennung 7/24 laufen müssen. Da sollte keine Unterbrechung sein. In der Summe bin ich da noch am Testen.
Ich hoffe dass es in Zukunft möglich ist ein Backup aus dem System heraus anzustossen und das dies im laufenden Betrieb möglich ist. Dies wäre eigentlich die ideale Lösung.
P.S. Gestern habe ich den FTP Download getestet. Nach 2 Stunden habe ich dann abgebrochen, es sind einfach zu viele kleine Dateien und der Overhead scheint einfach zu hoch zu sein. Bis jetzt ist die Image Lösung immer noch die schnellste und sicherste Lösung. Heute Abend setze ich mich dann mal hin und versuche mich am Shell skript. Mal sehen was raus kommt, bleibt aber die zeitliche Lücke.
-
Hi,
ich habe mir ein paar scripte gebastelt, die einen täglichen BackUp ziehen und auf mein NAS ablegen.
Das mache ich in mehreren Schritten.
1. Aufruf des copy-scriptes (jede Nacht um 00:05)
Folgende Steps führt das Script aus:
-
Stop ioBroker
-
das copy script macht dann eine Delta Kopie des gesamten iobroker Ordner inkl Unterordner in ein Zielverzeichnis meines NUC (oder Raspi)
-
start iobroker
Anzumerken ist, dass dies eine Delta Copy ist und i.d.R nur 30 Sekunden benötigt. (etwas länger nach updates)
Es ist eine 1:1 Kopie aller Dateien, die sich geändert haben. Daher lege ich diese auf dem NUC ab und nicht auf dem NAS. (Geht wesentlich schneller)
2. Verdichtung aller Dateien in ein Archiv
Danach wird innerhalb des Scripts eine Archiv-Datei erzeugt, die ein Abbild der einzelnen Ordner Strukturen und Dateien ist aber verdichtet auf eine Datei. Die Groesse dieser Datei ist abhängig von der Installation. Bei mir ca. 500 MB. Dies mache ich damit die spätere Kopie auf das NAS nicht ewig dauert
3. Ein weiteres Script kopiert dann alle änderungen des BackUp Verzeichnis, in dem sich die ArchivDateien der letzten 14 Tage befinden, auf das NAS, sofern sie sich nicht schon dort befinden. Auch werden Archivdateien vom NUC und NAS entfernt, die älter als 14 Tage sind
Dieses Script wird über cron jede Nacht um 4 Uhr ausgeführt. Die Kopien benötigen ein paar Minuten.
Mit diesem Verfahren ist kein manueller Eingriff mehr notwendig. Die Offtime von ioBroker ist minimal. Wenn ein Raspi mit SD karte verwendet wird, sollten die Kopien direkt im NAS (1:1) erzeugt werden. Insofern ist das eine Variante. Ich habe immer 14 Archivdateien a 500 MB auf dem NUC was ja 7GB Daten entspricht. Auch ist die tägliche sich verändernde Datenmenge gross, also nicht so gut für empfindliche SD Karten .
Bei Interesse kann ich die scripts posten (die sind natürlich anzupassen).
EDIT: Ach ja,noch zwei Punkte
-
ich nutze kein volles SQL was per BackUp besonders behandelt werden muesste. Ich benutze das simple SQL was wie auch die History Funktion innerhalb der iobroker Folder struktur Daten ablegt
-
Ich nutze noch REDIS und das script sichert auch die State Daten auf dem NAS. Nach einem Restore müssen diese ja wieder hergestellt werden.
noch eine Ueberlegung:
Ich denke, dass der Hauptgrund für den Stop von ioBroker ist, dass die States möglicherweise nicht konsistent gesichert werden können.
Wenn dies so ist, dann ist bei Nutzung von REDIS und durch Sichern der REDIS States möglicherweise ein stop von ioBroker nicht unbedingt notwendig.
vG Looxer
-
-
Hallo,
erst einmal Danke für die Antworten.
Ja an den Skripten wäre ich sehr interessiert.
Es wird zwar immer besser und man lernt viel dazu, aber das Risiko sich seine Arbeit abzuschießen durch Installation eines neuen Adapters Instanz, falsches Skript ist doch sehr hoch und dann sind schnell Tage/Wochen an Arbeit weg.
Andreas
-
Ja an den Skripten wäre ich sehr interessiert. `
Ja, gerne. Ich bin nur zur Zeit unterwegs. Am Donnerstag kann ich es hier einstellen.aber das Risiko sich seine Arbeit abzuschießen durch Installation eines neuen Adapters Instanz, falsches Skript ist doch sehr hoch `
da hast du Recht. BackUps sollten regelmäßig erstellt werden.
Hast du eine SD Karte ? Falls ja, dann empfehle ich dir auf eine günstige SSD oder HD zu wechseln. Der Wechsel ist relativ leicht zu bewerkstelligen. Die Kosten sind gering und die Betriebssicherheit wesentlich höher.
vG Looxer
-
kein Thema,
muss dann sowieso erst vorbereitende Maßnahmen durchführen.
Mein Ziel ist es die Daten lokal zu Hause zu speichern. Dazu überlege ich mir einen billigen Flash per USB am Raspberry als Zwischenpuffer einzustecken und dann die Daten via VPN direkt an mein NAS zu schicken.
Wenn das nicht klappt würde ich meinen alten NAS Server vor Ort installieren, dann kommt der auch wieder eine Funktion.
Andreas
-
@ RandyAndy:Dazu überlege ich mir einen billigen Flash per USB am Raspberry als Zwischenpuffer einzustecken `
warum nicht eine HD oder besser (wie ich finde) SSD ?
Das problem mit den Sicherungsdateien hast du dann zwar geloest aber dennoch sind deine System- und ioBroker daten dann noch auf einer SD - wie ich vermute.
-
ich habe mir ein paar scripte gebastelt, die einen täglichen BackUp ziehen und auf mein NAS ablegen.
…..
Bei Interesse kann ich die scripts posten (die sind natürlich anzupassen).
- ich nutze kein volles SQL was per BackUp besonders behandelt werden muesste. Ich benutze das simple SQL `
meinst Du SQLite?
aaalso ich wäre auch an den Skripten interessiert
LG
starfish aka Beat
-
Hi Beat,
meinst Du SQLite? `
ja, genau MySQL versus SQLite.ich wäre auch an den Skripten interessiert `
Freut mich.Um klar zu sein: Es geht um Shellscripte (Ausnahme ist die State-Sicherung, was ein Javascript ist)
Diese Scripte muessen auf die spezifische Situation angepasst werden, laufen also nicht out of the box.
vG Looxer
-
schon klar, shellskripte - Linux nehme ich an? Habe z.Zt. für iobroker noch mysql aber das einfachere Backup wäre schon ein Grund zu wechseln.
-
shellskripte - Linux nehme ich an? `
ja, ich habe einen NUC mit Debian. Sollte aber kein Unterschied zum Raspi sein.
Mein NAS ist ein USB Laufwerk an einer Fritzbox was ein paar Besonderheiten hat.
-
passt bis jetzt alles - debian, fritzbox - ich glaube ich muss gar nicht soviel ändern.
-
schon klar, shellskripte - Linux nehme ich an? Habe z.Zt. für iobroker noch mysql aber das einfachere Backup wäre schon ein Grund zu wechseln. `
Für mich nicht und sql Backup geht auch per Shell Script also integrations sache.
Die Skripte wäre ich auch interessiert!
Greetz
Dutch
–-----------------------
Send from mobile device
-
Ich rege an, eine Backupfunktion in die Admin-Oberfläche einzubauen, mit Download auf den Browser. Das fehlt wirklich.
-
Ich rege an, eine Backupfunktion in die Admin-Oberfläche einzubauen, mit Download auf den Browser. Das fehlt wirklich. `
Ist bereits als Idee aufgelistet:
–-----------------------
Send from mobile device
-
ohne jemand auf die Füsse treten zu wollen, aber wenn ich da an die updates von admin und js-controller aus der GUI denke, da ist mir ein komplett unabhängiges Backup schon lieber. Was genauso wichtig ist, der Restore-Vorgang muss möglichst einfach und zuverlässig funktionieren ggf. auch scriptgesteuert. Ich habe zu oft erlebt, dass Anwender sich in falscher Sicherheit wähnten, im Katastrophenfall hat das Restore dann nicht funktioniert - selbst bei namhaften Herstellern einschlägiger Software.
-
wenn es hilft, hier ist mein Script für das Backup.
#!/bin/sh # # Simple cron script - backup ioBroker the the backup-dir for download # # stop iobroker - backup - start iobroker cd /opt/iobroker iobroker stop iobroker backup iobroker start # backup mysql cd /opt/iobroker/backups arc=mysql_`date +%Y`-`date +%W`.tgz /usr/bin/mysqldump --user=root --password=DeinKennwort --events --all-databases > mysql_databases.sql /bin/tar -czf $arc mysql_databases.sql # set rights of backup files cd /opt/iobroker/backups chown root:users * chmod 0664 *
ich habe dieses Script einfach in /etc/cron.weekly geschoben, dann wird es jede ausgeführt.
Der Download erfolgt dann mit Samba, da habe ich ein share auf /opt/iobroker/backups gelegt.
Alternativ könnte man aber auch ein NAS rein mounten und das Backup dann als vierten Schritt direkt aufs NAS senden.
Dazu muss man das NAS bei Samba nur die /etc/samba/fstab eintragen, dann wird es beim Start des Raps mit gemountet.
-
Hi,
ich habe meine Vorgehensweise ausführlich dokumentiert.
Da es aber jetzt doch etwas umfangreicher geworden ist und mehr abdeckt als hier gefragt ist, möchte ich dazu einen separaten Thread aufmachen.
hier geht es weiter:
http://forum.iobroker.net/viewtopic.php?f=8&t=6526
vG Looxer
-
Hi,
ich habe meine Vorgehensweise ausführlich dokumentiert.
Da es aber jetzt doch etwas umfangreicher geworden ist und mehr abdeckt als hier gefragt ist, möchte ich dazu einen separaten Thread aufmachen. `
:lol: super- die übliche looxer qualität - danke :lol: