Sicherung der Hausautomatisierung
-
- Beiträge: 35
- Registriert: 15. Mai 2016 22:38
Re: Sicherung der Hausautomatisierung
Hallo,
auf der Platte ist die gesamte Openhab Installation fast alles was sonst so auf der SD-Karte wäre. Die SD-Karte braucht der RP nur zum starten,
der Rest spielt sich auf der externen Platte ab. Habe ich so gemacht weil die Lebensdauer der Karten ja sehr begrenzt ist.
Hast aber Recht die Sicherung auf dem gleichen Laufwerk ist glaube ich doof.
Gruß
Knut
auf der Platte ist die gesamte Openhab Installation fast alles was sonst so auf der SD-Karte wäre. Die SD-Karte braucht der RP nur zum starten,
der Rest spielt sich auf der externen Platte ab. Habe ich so gemacht weil die Lebensdauer der Karten ja sehr begrenzt ist.
Hast aber Recht die Sicherung auf dem gleichen Laufwerk ist glaube ich doof.
Gruß
Knut
- seppy
- Beiträge: 738
- Registriert: 24. Sep 2015 20:25
- Wohnort: Bonn
Re: Sicherung der Hausautomatisierung
Hi,
das Lebensdauerproblem der SD Karten halte ich für überbewertet
Meine Karte läuft seit zwei Jahren ohne Probleme. Ich würde per Cron täglich ein zip schreiben und das per script zum beispiel auf Dein NAS schreiben.
Grüße,
Seppy
das Lebensdauerproblem der SD Karten halte ich für überbewertet
Meine Karte läuft seit zwei Jahren ohne Probleme. Ich würde per Cron täglich ein zip schreiben und das per script zum beispiel auf Dein NAS schreiben.
Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren
- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung
- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Sicherung der Hausautomatisierung
Ich lasse mittels rsnapshot stündlich ein Backup auf meinen Backup-Server ablegen. rsnapshot nutzt rsync als Dienst.
Auf dem Backup-Server gibt es dann ein Verzecihnis, in dem für jedes system, von dem Backups gezogen werden, ein Verzeichnis liegt, in dem wiederum verschiedene Verzeichnisse für stündliches, tägliches, wöchentliches und monatliches Backup liegen, dort wiederum eine bestimmte Anzahl (z.B. 8 stündliche, 7 tägliche, 5 wöchentliche und 3 monatliche Backups, heißt, wenn ich was verorgele, komme ich auf die Version von vor einer Stunde, wenn es mir ein paar Tage später einfallt, komme ich weiter zurück, dann natürlich mit schlechterer Auflösung.
der Witz bei rsync ist, dass es mit symbolischne Links arbeitet, d.h. eine unveränderte Datei nimmt nur einmal Platz weg, jede weitere "Kopie" ist nur ein Verweis auf das Original.
Wenn rsync eine Differenz zwischen dem letzten Backup und der Originaldatei feststellt, wird diese Datei als neue Kopie über den Symlink gespeichert. Meine 1.4TByte Daten (von diversen Systemen) nehmen auf dem Backup-Server ebenfalls ungefähr 1.4TByte ein (ein klein bisschen mehr ist es schon, das bewegt sich aber eher im einstelligen GByte-Bereich).
Auf dem Backup-Server gibt es dann ein Verzecihnis, in dem für jedes system, von dem Backups gezogen werden, ein Verzeichnis liegt, in dem wiederum verschiedene Verzeichnisse für stündliches, tägliches, wöchentliches und monatliches Backup liegen, dort wiederum eine bestimmte Anzahl (z.B. 8 stündliche, 7 tägliche, 5 wöchentliche und 3 monatliche Backups, heißt, wenn ich was verorgele, komme ich auf die Version von vor einer Stunde, wenn es mir ein paar Tage später einfallt, komme ich weiter zurück, dann natürlich mit schlechterer Auflösung.
der Witz bei rsync ist, dass es mit symbolischne Links arbeitet, d.h. eine unveränderte Datei nimmt nur einmal Platz weg, jede weitere "Kopie" ist nur ein Verweis auf das Original.
Wenn rsync eine Differenz zwischen dem letzten Backup und der Originaldatei feststellt, wird diese Datei als neue Kopie über den Symlink gespeichert. Meine 1.4TByte Daten (von diversen Systemen) nehmen auf dem Backup-Server ebenfalls ungefähr 1.4TByte ein (ein klein bisschen mehr ist es schon, das bewegt sich aber eher im einstelligen GByte-Bereich).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 272
- Registriert: 15. Apr 2018 17:09
Re: Sicherung der Hausautomatisierung
hallo nochmal irgendwie komme ich nicht weiter,
also ich habe eine Bash -Datei kreiert namens backup.sh,
die sieht so aus:
Diese habe ich mit dem Befehl:
dann habe ich sie gestartet:
läuft unter Putty einwandfrei Backup / Clon der Karte ist da.
Nun habe ich das EXEC-Binding 2.4.0 installiert über die Paper UI.
Dann habe ich folgendes Thing angelegt:
dann das Item:
dann die Sitemap:
Leider geht hier die das auslösen des Backups nicht hat jemand eine Idee was ich falsch mache??
der LOG eintrag sieht so aus:
Über eine Idee wäre ich hocherfreut.
LG
Madmike
also ich habe eine Bash -Datei kreiert namens backup.sh,
die sieht so aus:
Code: Alles auswählen
#! /bin/bash
sudo dd if= /dev/mmcblk0 of= /dev/sda
Code: Alles auswählen
sudo chmod +x backup.sh
Code: Alles auswählen
./backup.sh
Nun habe ich das EXEC-Binding 2.4.0 installiert über die Paper UI.
Dann habe ich folgendes Thing angelegt:
Code: Alles auswählen
Thing exec:command:Backup [ cmmand="<./backup.sh> %2$s", interval=0,autorun=false ]
Code: Alles auswählen
Switch Backup "Backup" <shield> {channel="exec:command:Backup:run"}
Code: Alles auswählen
Frame label="Backup"{
Switch item=Backup
}
der LOG eintrag sieht so aus:
Code: Alles auswählen
2019-01-13 23:47:25.308 [ome.event.ItemCommandEvent] - Item 'Backup' received command ON
2019-01-13 23:47:25.325 [nt.ItemStatePredictedEvent] - Backup predicted to become NULL
LG
Madmike
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Sicherung der Hausautomatisierung
Da Du sudo im Script nutzt, musst Du dem user openhab erlauben, mindestens diesen Befehl mittels sudo auszuführen, ohne dass ein Passwort abgefragt wird. Weiterhin musst Du Dich mindestens einmal als user openhab einloggen und sudo erfolgreich nutzen, denn beim ersten Aufruf kommt die bekannte Warnung ("Mit großer Macht kommt große Verantwortung."), die muss einmalig bestätigt werden (alternativ kann man sicher auch im home-Verzeichnis eine Datei hinterlegen, die sudo sonst beim ersten Aufruf dort speichert... Ich hab aber keine Ahnung, wie die heißt und aussieht.)
Der Login als User openhab ist etwas umständlich, da für diesen User keine bash gesetzt ist (eben um ein Login zu verhindern):
und man landet direkt im home-Verzeichnis von openhab, in einer normalen bash Shell.
Du hast den Pfad der Datei backup.sh nicht angegeben. Wenn Du die Datei in dne Ordner /etc/openhab2/scripts/ legst, kann das funktionieren (auch ohne das ./), besser ist es aber, den absoluten Pfad anzugeben, nur um sicherzugehen.
Ob das Script überhaupt aufgerufen wird, kannst Du feststellen, indem Du z.B. ein echo in eine ausgewählte Datei schickst (innerhalb des Scripts). Dann weißt Du, dass die opeHAB-Seite funktioniert (und solange Du das vor dem sudo einfügst, sollte echo auch nicht scheitern).
Der Login als User openhab ist etwas umständlich, da für diesen User keine bash gesetzt ist (eben um ein Login zu verhindern):
Code: Alles auswählen
sudo su - -s /bin/bash openhab
Du hast den Pfad der Datei backup.sh nicht angegeben. Wenn Du die Datei in dne Ordner /etc/openhab2/scripts/ legst, kann das funktionieren (auch ohne das ./), besser ist es aber, den absoluten Pfad anzugeben, nur um sicherzugehen.
Ob das Script überhaupt aufgerufen wird, kannst Du feststellen, indem Du z.B. ein echo in eine ausgewählte Datei schickst (innerhalb des Scripts). Dann weißt Du, dass die opeHAB-Seite funktioniert (und solange Du das vor dem sudo einfügst, sollte echo auch nicht scheitern).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 272
- Registriert: 15. Apr 2018 17:09
Re: Sicherung der Hausautomatisierung
Hallo Udo1toni,
erst mal Danke für Deine Antwort. Nun tauchen noch ein paar Fragen auf die ich als nicht so erfahrener Linuxuser habe. Zum einen hattest Du die Frage, wo die backup.sh liegt.
Sie liegt im Ordner /home/openhabian.
Ich kann die Datei ohne weiteres in den Ordner den du mir nanntest verschieben. Der Befehl den Du mit in Deiner Antwort hattest, kommt dieser in die bash.datei oder muss ich Ihn einmal ausführen und das war es ??.
Des weiteren habe ich noch nie ein echo gesendet, was muss ich tun ??
und letztlich wie sehen deiner Meinung nach meine Things, Items und Sidemap-Einträge aus ??
danke für Deine Mühe
Madmike
erst mal Danke für Deine Antwort. Nun tauchen noch ein paar Fragen auf die ich als nicht so erfahrener Linuxuser habe. Zum einen hattest Du die Frage, wo die backup.sh liegt.
Sie liegt im Ordner /home/openhabian.
Ich kann die Datei ohne weiteres in den Ordner den du mir nanntest verschieben. Der Befehl den Du mit in Deiner Antwort hattest, kommt dieser in die bash.datei oder muss ich Ihn einmal ausführen und das war es ??.
Des weiteren habe ich noch nie ein echo gesendet, was muss ich tun ??
und letztlich wie sehen deiner Meinung nach meine Things, Items und Sidemap-Einträge aus ??
danke für Deine Mühe
Madmike
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Sicherung der Hausautomatisierung
Also...
Der Befehl
ruft den default Editor auf, um die sudoers zu bearbeiten. Dabei stellt visudo beim speichern sicher, dass die Datei gültig ist. Deshalb immer visudo verwenden! In der Datei, die angezeigt wird, legst Du eine zusätzliche Zeile an, und zwar unterhalb einer Kommentarzeile
(dort gibt es bereits eine Zeile für root)
Deine Zeile sieht so aus:
was letztlich bedeutet, dass der User openhab den Befehl /etc/openhab2/scripts/baskup.sh in allen Kontexten ausführen darf, ohne ein passwort eingeben zu müssen.
dient dazu, sich als User openhab anzumelden. der User openhab hat normalerweise nicht die Erlaubnis, sich anzumelden, damit kann dieser User auch keine Dummheiten machen (falls jemand es schafft, über jetty auszubrechen)
Wenn Du als User openhab angemeldet bist, kannst Du das backup-script aufrufen.
Wenn alles richtig funktioniert hat, kommt einmalig die Bemerkung, dass mit großer Macht große Verantwortung einhergeht (oder so ähnlich), was Du mit der <ENTER>-Taste bestätigst. Anschließend sollte umgehend Dein Script mit root-Rechten laufen.
erzeugt z.B. in der Datei /var/log/backup.log eine Zeile, die so aussieht:
Voraussetzung ist dabei, dass die Datei bereits existiert und der user openhab mindestens Schreibrechte hat (weil /var/log/ root gehört). Das kannst Du erreichen, indem Du diesen Code zeile für Zeile ausführst:
Dies erzeugt die Datei, setzt Leserechte für alle und ändert den Besitzer der Datei in openhab, damit hat nur der User openhab Schreibrechte. Wenn Du dann das echo in Deinem Script oberhalb des eigentlichen Befehls einbaust und danach noch eine weitere Zeile mit echo, die auf das Ende hinweist, kannst Du in der log-Datei nachschauen, ob das Script gearbeitet hat.
Da sind schon einige Fehler drin. Es muss eher so aussehen (neuer Speicherort schon berücksichtigt)
Eventuell musst Du, wie erwähnt, den kompletten Pfad angeben, dann sieht's so aus:
Da das Script keinen Parameter erwartet, müssen wir auch keinen übergeben Der Rest sieht erstmal gut aus.
openHAB läuft unter dem User openhab, nicht unter dem User openhabian. das home-Verzeichnis ist gewöhnlich dem Eigentümer vorbehalten. Ausnahmen sind nur User, die kein gewöhnliches home-Verzeichnis haben (z.B. der user openhab hat das openHAB Userdata Verzeichnis als home-Verzeichnis, dieses ist für jeden User lesbar. Das backup-script sollte aber besser unter /etc/openhab2/scripts/ liegen.
Dein Script enthält den Befehl sudo. sudo fordert beim Aufruf ein Admin-Passwort an. Die erste Voraussetzung ist, dass der User überhaupt berechtigt ist, sudo zu starten. Da der user openhab kein Passwort eingeben kann, musst Du außerdem dafür sorgen, dass keine Passwortabfrage kommt. Aber Achtung! Wenn man das falsch macht, reißt man eine Scheunenwand als Sicherheitslücke ein.Der Befehl den Du mit in Deiner Antwort hattest, kommt dieser in die bash.datei oder muss ich Ihn einmal ausführen und das war es ??.
Der Befehl
Code: Alles auswählen
sudo visudo
Code: Alles auswählen
# User privilege specification
Deine Zeile sieht so aus:
Code: Alles auswählen
openhab ALL=(ALL:ALL) NOPASSWD: /etc/openhab2/scripts/backup.sh
Code: Alles auswählen
sudo su - -s /bin/bash openhab
Wenn Du als User openhab angemeldet bist, kannst Du das backup-script aufrufen.
Wenn alles richtig funktioniert hat, kommt einmalig die Bemerkung, dass mit großer Macht große Verantwortung einhergeht (oder so ähnlich), was Du mit der <ENTER>-Taste bestätigst. Anschließend sollte umgehend Dein Script mit root-Rechten laufen.
echo ist ein Befehl, den Du in Dein Script einbauen kannst, um Textausgaben zu erzeugen.Des weiteren habe ich noch nie ein echo gesendet, was muss ich tun ??
Code: Alles auswählen
echo `date` Backup wird gestartet >> /var/log/backup.log
Code: Alles auswählen
Di 15. Jan 17:26:56 CET 2019 Backup wird gestartet
Code: Alles auswählen
sudo touch /var/log/backup.log
sudo chmod 644 /var/log/backup.log
sudo chown openhab: /var/log/backup.log
Auf die hatte ich mich noch nicht gestürzt.und letztlich wie sehen deiner Meinung nach meine Things, Items und Sidemap-Einträge aus ??
Code: Alles auswählen
Thing exec:command:Backup [ cmmand="<./backup.sh> %2$s", interval=0,autorun=false ]
Code: Alles auswählen
Thing exec:command:Backup [ command="backup.sh", autorun=false ]
Code: Alles auswählen
Thing exec:command:Backup [ command="/etc/openhab2/scripts/backup.sh", autorun=false ]
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 143
- Registriert: 16. Jul 2018 08:57
- Wohnort: Werl
- Kontaktdaten:
Re: Sicherung der Hausautomatisierung
Jetzt noch eine Frage zum verständnis.
Was bringt mit denn die Tägliche Sicherung ?
Bisher habe ich es so gemacht, dass ich nach ein Änderung, wenn dann alles
so lief wie es soll, einfach die Raspi runtergefahren habe, dann von der Karte
ein Image und dann war ich damit fertig. Was spricht denn dagegen ?
Was bringt mit denn die Tägliche Sicherung ?
Bisher habe ich es so gemacht, dass ich nach ein Änderung, wenn dann alles
so lief wie es soll, einfach die Raspi runtergefahren habe, dann von der Karte
ein Image und dann war ich damit fertig. Was spricht denn dagegen ?
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Sicherung der Hausautomatisierung
Ein Image sollte man tatsächlich nur dann erstellen, wenn man umfangreiche Änderungen vorgenommen hat (z.B. nachdem man Updates für 90 (oder eine andere beliebig große Zahl) Pakete eingespielt hat - einfach, weil es sonst jedes Mal wieder fällig wäre, diese Dateien upzudaten)
rsnapshot erstellt einfach stündlich ein Backup der Dateien, die man angibt (natürlich kann man auch Verzeichnisse angeben und bestimmte Dateien oder Unterverzeichnisse blacklisten, so dass sie ausgelassen werden)
Der Unterschied zu einem gewöhnlichen Backup besteht darin, dass dieses Backup "keinen" Platz benötigt, solange die Dateien sich nicht ändern. Wenn eine Datei verändert wird, benötigt sie einmal zusätzlichen Platz, eben für die geänderte Version, ansonsten aber nicht. Wenn ich aber auf eine bestimmte Version zurück möchte, habe ich die freie Auswahl, welche Version ich nutzen will. Es werden (bei meiner Konfiguration) ca. 20 Versionen aufbewahrt, mit unterschiedlichem zeitlichen Abstand. Es kann nicht jeder beliebige Zeitpunkt wiederhergestellt werden, aber die üblichen Varianten (von vor 1,2,3,4,5 Stunden, letzte Woche, vorletzten Monat...) und die Dateien liegen virtuell als normale Dateien da, kein umständliches Zurückspielen, ich greife einfach auf die Kopie zurück, die zum gewählten Zeitpunkt angelegt wurde.
Ich muss nicht daran denken, das zu tun, denn es passiert automatisch (openHAB ist nur eines der Systeme, die bei mir so gesichert werden)
Man kann natürlich ein Image auch jederzeit von Hand erzeugen, ich bin mir auch nicht sicher, dass das Image eines laufenden Systems komplett ohne Schluckauf startet, aber das Image über die Oberfläche auszulösen ist schon nett.
rsnapshot erstellt einfach stündlich ein Backup der Dateien, die man angibt (natürlich kann man auch Verzeichnisse angeben und bestimmte Dateien oder Unterverzeichnisse blacklisten, so dass sie ausgelassen werden)
Der Unterschied zu einem gewöhnlichen Backup besteht darin, dass dieses Backup "keinen" Platz benötigt, solange die Dateien sich nicht ändern. Wenn eine Datei verändert wird, benötigt sie einmal zusätzlichen Platz, eben für die geänderte Version, ansonsten aber nicht. Wenn ich aber auf eine bestimmte Version zurück möchte, habe ich die freie Auswahl, welche Version ich nutzen will. Es werden (bei meiner Konfiguration) ca. 20 Versionen aufbewahrt, mit unterschiedlichem zeitlichen Abstand. Es kann nicht jeder beliebige Zeitpunkt wiederhergestellt werden, aber die üblichen Varianten (von vor 1,2,3,4,5 Stunden, letzte Woche, vorletzten Monat...) und die Dateien liegen virtuell als normale Dateien da, kein umständliches Zurückspielen, ich greife einfach auf die Kopie zurück, die zum gewählten Zeitpunkt angelegt wurde.
Ich muss nicht daran denken, das zu tun, denn es passiert automatisch (openHAB ist nur eines der Systeme, die bei mir so gesichert werden)
Man kann natürlich ein Image auch jederzeit von Hand erzeugen, ich bin mir auch nicht sicher, dass das Image eines laufenden Systems komplett ohne Schluckauf startet, aber das Image über die Oberfläche auszulösen ist schon nett.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 272
- Registriert: 15. Apr 2018 17:09
Re: Sicherung der Hausautomatisierung
Hallo zusammen, leider habe ich trotz Deiner super Anleitung keinen Erfolg.
Ich bekomme immer wieder Fehlermeldung in der log das die Datei nicht gefunden wurde.
Habt Ihr noch eine Idee ??
Zu der Frage warum ich es so mache möchte:
Ich möchte gerne bei Bedarf das Backup auslösen, also zum Beispiel bei/vor Updates.
Ich brauche keine täglich Backup, da das System stabil läuft und ich mittlerweile kaum noch Erweiterungen mache.
Der Nächste Umstieg wird erst wieder mit dem neuen Mqtt-Binding sein. aber das ist ein anderes Ding.
Also wäre die Lösung zu einem für mich, benutzerbedingten Lösung optimal.
Das mag jeder anderes sehen, aber ich wäre super zufrieden.
mfg
Madmike
Ich bekomme immer wieder Fehlermeldung in der log das die Datei nicht gefunden wurde.
Habt Ihr noch eine Idee ??
Zu der Frage warum ich es so mache möchte:
Ich möchte gerne bei Bedarf das Backup auslösen, also zum Beispiel bei/vor Updates.
Ich brauche keine täglich Backup, da das System stabil läuft und ich mittlerweile kaum noch Erweiterungen mache.
Der Nächste Umstieg wird erst wieder mit dem neuen Mqtt-Binding sein. aber das ist ein anderes Ding.
Also wäre die Lösung zu einem für mich, benutzerbedingten Lösung optimal.
Das mag jeder anderes sehen, aber ich wäre super zufrieden.
mfg
Madmike