Dateisicherung mit configDB

Begonnen von betateilchen, 18 April 2014, 22:51:32

Vorheriges Thema - Nächstes Thema

betateilchen

Ab dem morgigen Update unterstützt configDB das Sichern beliebiger Dateien aus dem FHEM Dateisystem in die Datenbank. Derzeitiges Anwendungsgebiet ist die reine Datensicherung solcher Dateien (z.B. selbst angelegte gplot Dateien, RSS Layouts, 99_myUtils.pm usw.)

Das Sichern erfolgt mit folgender Syntax:

configdb fileimport FHEM/99_myUtils.pm

Natürlich lassen sich die gesicherten Dateien auch wieder in das Dateisystem zurückschreiben:

configdb fileexport FHEM/99_myUtils.pm

Achtung: Die Zieldatei wird ohne Rückfrage überschrieben, falls sie bereits exisitiert!

Die Weiterentwicklung daran ist in vollem Gange.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Heute wurden die zwei neuen Befehle


  • configdb filelist
  • configdb delete <fileName>

hinzugefügt.

configdb filelist liefert eine Liste mit den Dateinamen aller in der Datenbank gespeicherten Dateien
configdb filedelete <fileName> löscht die angegebene Datei aus der Datenbank
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Neuer Befehl: configdb fileshow <dateiName> - zeigt den Inhalt einer in der configDB gespeicherten Datei an.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Neuer Befehl: configdb filemove <dateiName> - schreibt die angegebene Datei in die Datenbank und löscht anschliessend die Datei aus dem Dateisystem.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Ab sofort (per update ab morgen) können auch Binärdateien in die Datenbank importiert werden.

Dazu gibt es den neuen Befehl configdb binfileimport <datei>

Für den Export und das Löschen ist kein besonderer Befehl notwendig.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tupol

Hallo Betateilchen,
könntest Du uns bitte eine kurze Erklärung geben, was der Vorteil von dieser Verlagerung in die DB ist?
FHEM 5.5 auf RPi B Rev.2 (mit LCD4Linux, BMP180 und CUL v3 868.35 MHz), FB7490, Fritz!DECT 200, FS20, FHT80TF-2, S300TH, KS300, Homematic, PRESENCE
Modul-Entwickler von: FRITZBOX, statistics, PROPLANTA, OPENWEATHER, JSONMETER, LUXTRONIK2

betateilchen

Grundsätzlich: es ist nicht alles eine Verlagerung! Es bietet mir die Möglichkeit, alle Dateien, die irgendwie im Zusammenhang mit fhem stehen, als Kopie in der configDB zu sichern.

Beispielsweise:


  • das fhem Startskript /etc/init.d/fhem
  • den hmland Treiber
  • meine Images, die in RSS Layouts verwendet werden
  • meine Skripts, mit denen ich die RSS Bilder auf meine Webserver übertrage
  • meine /etc/watchdog.conf
  • meine wpa-supplicant

Sollte ich jemals mein fhem neu installieren müssen, nehme ich die letzte configDB aus meinem Sicherungsbestand und exportiere einfach alle gespeicherten Dateien wieder in das Filesystem. Da die Dateien alle mit kompletter Pfadangabe gesichert sind, stehen sie danach auch automatisch wieder alle an der richtigen Stelle.

Wenn man für configDB z.B. sqlite verwendet, hat man den kompletten Datenbestand in einer einzigen Datei, die man täglich per Skript auf einen externen Speicher kopieren kann - bei mir passiert das per cronjob alle 6 Stunden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Amenophis86

Ich habe eine Verständnis Frage dazu:

Dateien, welche sich in der DB befinden, damit kann FHEM ja arbeiten, richtig? Also zB meine Holiday Datei befindet sich nur in der DB, weil ich sie dahin migriert habe, dann erkennt FHEM auch die Holiday Tage.

Wie sieht es mit bash Dateien aus? Kann FHEM diese auch ausführen? Ich frage, weil ich aktuell bash Dateien habe, diese in die DB importiert habe und sie jetzt quasi von FHEM mittels {system ...} nicht mehr ausgeführt werden können. Geht das überhaupt? Und wenn ja, was muss ich dann beachten? Ich meine ich kann ja nicht den früheren Pfad /opt/fhem/FHEM/datei.sh im System Befehl angeben.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

betateilchen

#8
Welche Dateien von FHEM verwendet werden können, wenn sie in der Datenbank liegen, steht in der commandref zu configDB ganz am Anfang.

Zitat von: Amenophis86 am 27 September 2017, 19:49:25
Ich habe eine Verständnis Frage dazu:

ich auch: Was ist an der Liste in der commandref unverständlich? Steht da irgendwas von "Ausführung von Shell Skript" oder ähnlichem?

Ein Shell Skript läuft immer auf Betriebssystemebene. Es weiss zu seiner Lebenszeit weder etwas von FHEM geschweige denn von einer configDB. Und seine Laufzeitumgebung weiss davon genau so wenig.

Weitere Diskussionen bitte im entsprechenden Forumbereich zu configDB führen, nicht hier in den Ankündigungen. Danke.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!