NEWS
Automatisches Backup
-
Hi Brati, wie und wo legst du eigentlich dieses Script an? Ist noch was zu beachten außer das Anlegen der Ordner, wie von dir beschrieben?
Gruß, Rob `
Mahlzeit,
das hat sissiwup sehr genial beschrieben:
http://forum.iobroker.de/viewtopic.php? … 798#p10597
Ich füge mal den Verweis in meinem Post ein.
Grüße
Brati
-
Ok, Danke.
-
Hallo,
hier meine aktuelle Lösung (naja gebranntes Kind):
Mein NAS lauscht auf 192.168.1.91 und hat eine Freigabe myshare, da liegt ein Unterverzeichnis backup drin, wo sowieso schon alle hinsichern
Es geht natürlich auch jede Windowsfreigabe, die erreichbar ist.
im Verzeichnis /opt mit````
nano backup.sh#!/bin/bash
umount /mnt/myshare
mount.cifs //192.168.1.91/myshare /mnt/myshare -o user=meinuseraufnas,passwd=meinpasswordaufnas
rsync -aLvzh /opt/iobroker /mnt/myshare/backup/iobroker
cd /opt/iobroker
iobroker stop
rsync -aLvzh /opt/iobroker /mnt/myshare/backup/iobroker
cd /opt/iobroker
iobroker start
umount /mnt/mysharebackup.sh ausführbar machen:
chmod ugo+rx backup.sh
Warum die Befehle: Der umount am Anfang, falls ich das mal per Hand gemeountet hatte um sauber zu sein Dann das mounten der Netzwerkfreigabe. Anschließend die erste Sicherung, wenn hier etwas schief geht, habt ihr den iobroker noch nicht runtergefahren. Der sichert alles, ausser Dateien, die gelockt sind. (Wichtig! Kein "/" hinter iobroker, sonst legt er das Unterverzeichnis nicht an.) Dann den iobroker stoppen Jetzt die Sicherung der restlichen paar Dateien, sollte rasend fix gehen (im Sekundenbereich) Anschließend Neustart des iobrokers und Aufräumen mit unmount im Verzeichnis /mnt das Unterverzeichnis myshare = /mnt/myshare anlegen Und das ganze wird automatisch um 4:00 (= 0 4) gestartet mit
nano /etc/crontab
/etc/crontab: system-wide crontab
Unlike any other crontab you don't have to run the `crontab'
command to install the new version when you edit this file
and files in /etc/cron.d. These files also have username fields,
that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binm h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
0 4 * * * root /opt/backup.sh >> /opt/backup.log```` `
Hallo,
ich wollte mich an der Scriptidee dran hängen. Da ich aber keine Ahnung habe mal ein paar Fragen:
In welches Verzeichnis lege ich die backup.sh?
Wie kann ich händisch die backup.sh aufrufen? mit "sudo backup.sh" (im root) bekomme ich die Fehlermeldung "sudo: backup.sh: command not found"
-
Da steht es:
0 4 * * * root /opt/backup.sh >> /opt/backup.log
Also im Verzeichnis
/opt
aber Du kannst es auch wo anders hinlegen.
Und da kannst Du es auch ausführen.
wenn Du im entsprechenden Verzeichnis bist z.B. mit
./backup.sh
Gruß
Tino
-
Hallo,
ich noch einmal, der Ahnungslose
Ich für die Befehle im SSH Terminal einzeln aus.
Mounten läuft, aber bei dem ersten rsync Befehl, hängt sich der Befehl wahrlos auf.
Es hängt nicht an einer Datei. Was kann ich da tun?
-
Kein Problem, wir lernen jeden Tag etwas neues.
Wie lange hast Du gewartet? Ein erster sync dauert, weil dabei ja alles kopiert werden muss.
Und was bedeutet bei Dir "hängt sich auf"?
Gruß
Tino
-
Ich meinte es tut sich Minuten lang nix, aber so gar nix.
Ich habe nun auf meinem Testsystem (Pi3 ) das Brati Script. Das flubt wie geschnitten Brot.
Da es so super läuft, wollte ich das auf meinem Produktivsystem (Cubitruck) nutzen.
Wenn ich nun mounten will mit dem Befehl
mount.cifs //192.168.178.195/backup /mnt/backup -o user=ioBroker,passwd=xxx
bekomme ich den Fehler:
-bash: mount.cifs: command not found
Genau der gleiche Befehl geht auf dem Pi3 (natürlich mit korektem Password)
Goggle sagt: Mach mal:
sudo apt-get install nfs-common portmap
Han isch auch getan. Gleicher Fehler
-
mount.cifs //192.168.178.195/backup /mnt/backup -o user=ioBroker,passwd=xxx ```` `
Via kopie past hat der wo anders funktioniert?
Und damit besser?
sudo apt-get install cifs-utils
-
-
super.
-
Hallo zusammen,
Da an meinem Cubie einen Usb-Stick hängen habe, wird dort direkt die Sicherung eingespielt.
Wurde gemischt mit dem Mounten vom externen Datenträger + die Anleitung von Sissiwup.
Falls Interesse besteht könnte ich für die Leute die keine NAS haben eine Tutorial erstellen?
Viele Grüße & schöne Pfingsten noch
-
Danke für das tolle script
ich drehe gerade am rad, ich bin auf Debian Jessie umgestiegen und wollte jetzt wieder das backup einrichten.
allerdings bekomme ich das mounten nicht mehr hin:
mount.cifs //XXX/Homematic /mnt -o user=root,passwd=XXX mount error(115): Operation now in progress Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
An der Synology hat sich auch nichts geändert, einzig das neuinstallieren auf Jessie
Hat jemand eine idee?
-
habe es gefunden, wieso auch immer geht es nur mit dem netzwerkname
-
Mal an die Nutzer gefragt: es sind ja zwei rsyncs da drin - einmal vor und einmal nach dem stoppen des iobroker.
Welche files werden denn nach dem stoppen nachgesynct? Sollte doch nur maximal Objects-File und ( falls nicht Redis) das States-file und ggf History file, oder?!
Ein iobroker "flush" Befehl der sicherstellt das alle Daten auf dem Datenträger aktuell sind um das Backup zu machen während er läuft.
Ich kann mich immer noch nicht mit der "nachts mal abschalten um das Backup zu machen" Idee anfreunden
Ingo F
-
Auf dem NUC läuft das Backup in 10s durch, beim Neustart schlafe ich, also stört es doch nicht. Und gebraucht habe ich es jetzt doch schön öfter. Da freut man sich, wenn das System in 2min wieder läuft.
Keine Ahnung ob man ioBroker wirklich stoppen muss.
Grüße Brati
von unterwegs gesendet.
-
Also ich hab mal genau geschaut … Die FIles die sich zwischen verschiedenen Zeitpunkten ändern sind:
-
Logfile (klar, für Backup aber eher unwichtig)
-
History-Files (auch klar ... da ist der Stop des iobroker - oder mind des Adapters - wichtig das keine Daten verloren gehen ... oder SQL/Influx)
-
iobroker/node_modules/iobroker.js-controller/pids.txt (wohl bei nem neustart eher unwichtig)
-
iobroker/iobroker-data/objects.json +.bak (wichtig, wird regelmäßig geschrieben auch ohne änderung)
Am Ende ists als "Nur" das Objects-DB-File ... aber das ändert nachts keiner.
Ich habe nichts gefunden was ewig offen bleibt ...
Also: Gibts denn wirklich (aktuelle) Erfahrungen das ein "Stop" nötig ist weil sonst das Backup nicht tut wenn man es braucht?
-
-
Auf dem NUC läuft das Backup in 10s durch, beim Neustart schlafe ich, also stört es doch nicht. Und gebraucht habe ich es jetzt doch schön öfter. Da freut man sich, wenn das System in 2min wieder läuft.
Keine Ahnung ob man ioBroker wirklich stoppen muss.
Grüße Brati
von unterwegs gesendet. `
Ob man stoppen muss oder nicht… Es existieren folgende bedenken:-
ich weiß es nicht, falls iob die Datei gerade schreibt, was passiert dann?
-
die States werden nur in 30 Sekunden Rhythmus gespeichert.
-
falls History aktiviert ist, da werden die Daten noch seltener gespeichert.
Für Objekte gibt es natürlich bak Dateien und die werden automatisch aktiv, falls original nicht in Ordnung ist.
Ich wurde mich freuen, falls jemand eingebaute Backup Funktion testet. Da existieren die Probleme mit schrEiben nicht.
Und falls redis benutzt wird, man kann denn nicht einfach mit Dateikopieren sichern.
-
-
Hi,
meine Aussagen oben waren mit Nutzung von Redis. Daher waren die States raus. Mit Influx/SQL sind die History-Files relevant. Korrekt.
Ansonsten hast Du recht - ein "gerade am schreiben" ist problematisch, ABER mit der .bak und der echten Datei (nd der Annahme ndas es Nachts keine Objects-Änderungen gibt) sollte das "gerade schreiben" maximal eins der beiden Files betreffen.
Ich mache auch Sicherung mit "iobroker backup" …Habe gesehen das da alles in einer backup.json landet ... das ist natürlich ideal ... Wa sist denn da alles drin?
Ich hatte nur hier und da wenn ich (selten) mal in Prozessliste geschaut habe "iobroker backup" prozesse hängen. Aber was da los war kann wohl keiner sagen
Setze gerade meinen neuen Cubie auf und will dann iobroker dahin "umziehen" (hat ne SSD).Dann versuche ich es mal per "backup" und "restore" und zusätzlich mach ich nen rsync vor dem restore (wegen der ganzen anderen files und so).
-
Hallo,
hier meine aktuelle Lösung (naja gebranntes Kind):
Mein NAS lauscht auf 192.168.1.91 und hat eine Freigabe myshare, da liegt ein Unterverzeichnis backup drin, wo sowieso schon alle hinsichern
Es geht natürlich auch jede Windowsfreigabe, die erreichbar ist.
im Verzeichnis /opt mit````
nano backup.sh#!/bin/bash
umount /mnt/myshare
mount.cifs //192.168.1.91/myshare /mnt/myshare -o user=meinuseraufnas,passwd=meinpasswordaufnas
rsync -aLvzh /opt/iobroker /mnt/myshare/backup/iobroker
cd /opt/iobroker
iobroker stop
rsync -aLvzh /opt/iobroker /mnt/myshare/backup/iobroker
cd /opt/iobroker
iobroker start
umount /mnt/mysharebackup.sh ausführbar machen:
chmod ugo+rx backup.sh
Warum die Befehle: Der umount am Anfang, falls ich das mal per Hand gemeountet hatte um sauber zu sein Dann das mounten der Netzwerkfreigabe. Anschließend die erste Sicherung, wenn hier etwas schief geht, habt ihr den iobroker noch nicht runtergefahren. Der sichert alles, ausser Dateien, die gelockt sind. (Wichtig! Kein "/" hinter iobroker, sonst legt er das Unterverzeichnis nicht an.) Dann den iobroker stoppen Jetzt die Sicherung der restlichen paar Dateien, sollte rasend fix gehen (im Sekundenbereich) Anschließend Neustart des iobrokers und Aufräumen mit unmount im Verzeichnis /mnt das Unterverzeichnis myshare = /mnt/myshare anlegen Und das ganze wird automatisch um 4:00 (= 0 4) gestartet mit
nano /etc/crontab
/etc/crontab: system-wide crontab
Unlike any other crontab you don't have to run the `crontab'
command to install the new version when you edit this file
and files in /etc/cron.d. These files also have username fields,
that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binm h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
0 4 * * * root /opt/backup.sh >> /opt/backup.log```` `
Hi,
ich stehe auch gerade vor der Entscheidung ein Backup zu machen.
Deine Anleitung habe so gut wie möglich verstanden.
Ich hätte eine Frage dazu:
Wie kann ich denn auf einen Stick oder auf eine Fritzbox sichern.
Kannst du mir das vielleicht erklären.
Gruß totocotonio
-
Hi,
meine Aussagen oben waren mit Nutzung von Redis. Daher waren die States raus. Mit Influx/SQL sind die History-Files relevant. Korrekt.
Ansonsten hast Du recht - ein "gerade am schreiben" ist problematisch, ABER mit der .bak und der echten Datei (nd der Annahme ndas es Nachts keine Objects-Änderungen gibt) sollte das "gerade schreiben" maximal eins der beiden Files betreffen.
Ich mache auch Sicherung mit "iobroker backup" …Habe gesehen das da alles in einer backup.json landet ... das ist natürlich ideal ... Wa sist denn da alles drin?
Ich hatte nur hier und da wenn ich (selten) mal in Prozessliste geschaut habe "iobroker backup" prozesse hängen. Aber was da los war kann wohl keiner sagen
Setze gerade meinen neuen Cubie auf und will dann iobroker dahin "umziehen" (hat ne SSD).Dann versuche ich es mal per "backup" und "restore" und zusätzlich mach ich nen rsync vor dem restore (wegen der ganzen anderen files und so). `
Hi Apollon,
da ich schon viel Arbeit in ioBroker investiert habe, würde ich auch gern einmal "iobroker backup" einschalten/durchführen. Wo finde ich denn diese Option/diesen Adapter??
Wenn es diese Option schon gibt, möchte ich ungern mit Scripten arbeiten oder mit einer Kopie von der SD-Karte. Sicherung findet dann auf meinen NAS statt (denke ich) und der wird nochmal in eine Cloud gesichert (bereits so eingestellt). Somit hätte ich auch ein richtiges Backup
Danke und Grüße, kueppert