[erledigt] Problem mit Backup Funktion nach Einspielen eines Backup

Begonnen von Scherheinz, 16 Juni 2019, 13:43:26

Vorheriges Thema - Nächstes Thema

Otto123

das lohnt sich ja dann :)
Ich zeige Dir dann mal noch ein paar Ideen. Bin gerade am testen und aufschreiben :) Morgen oder übermorgen bin ich fertig.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Scherheinz

Oh dann bin ich mal gespannt!  :) 8)
Aber ich glaube das ich wieder einen P2 nehme, dann hab ich die identische Hardware und könnte die SD Karten zur Not hin und her tauschen.

Otto123

würde ich nicht machen. Die Karten sind doch gleich. Und der Performance Gewinn vom P2 zum Pi3+ ist schon enorm.
Also wenn, würde ich wenigstens einen Pi3+ nehmen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Ich schreibe mal eine erste Fassung auf:
Kopieren von Definitionen von FHEM Instanz1 auf FHEM Instanz2
Vorbereitung:
FHEM auf Instanz2 ist installiert
Wir arbeiten im Terminal auf Instanz2, normaler User Pi, wir stehen im /home/pi
Um über die HTTP Schnittstelle von FHEM zu arbeiten brauchen wir meinen HTTP Client
wget -O fhemcl.sh https://raw.githubusercontent.com/heinz-otto/fhemcl/master/fhemcl.sh
Prinzipiell geht das was ich jetzt zeige auch über Telnet, aber wir müssen ja kein extra Tor aufmachen. ;)
Aufgabe zum üben: Kopieren von einem FileLog samt Inhalt und einem dazugehörigen Plot.
Ich mache es über einen lokalen Zwischenschritt, dazu brauch ich einen temporärer Pfad:
mkdir -p fhem/www/            #erzeugt den Ordner fhem/ und den Ordner fhem/www/
Ich hole mal vorsorglich alle Log und gplot Dateien lokal in den temporäreren Pfad:
scp -r pi@instanz1:/opt/fhem/log/ fhem/ #kopiert den Remote Pfad log/ nach fhem/log/ 
scp -r pi@instanz1:/opt/fhem/www/gplot/ fhem/www/#kopiert den Remote Pfad gplot/ nach fhem/gplot/

Als kleinen Test will ich den FileLog und den Plot vom robbi wiederherstellen. Also kopiere ich zuerst beide Dateien an Ort und Stelle von FHEM. Ich mache das mit FHEM, dann stimmen die Orte und Berechtigungen ohne weiteres Nachdenken.
bash fhemcl.sh 8083 "{qx(cp /home/pi/fhem/log/*robbi*.log ./log/)}"
bash fhemcl.sh 8083 "{qx(cp /home/pi/fhem/www/gplot/*robbi*.gplot ./www/gplot/)}"

Jetzt kommt noch die Kopie/Anlage der "Geräte" in FHEM
bash fhemcl.sh instanz1:8083 "list -r FileLog_robbi" |bash fhemcl.sh 8083
bash fhemcl.sh instanz1:8083 "list -r SVG_FileLog_robbi_1"|bash fhemcl.sh 8083

Fertig: man kann sich das Ergebnis in instanz2 im Browser ansehen.  :D
Will man nach diesem kleinen Test einfach alle Log und gplot Definitionen übernehmen, geht das mit leichter Modifikation mit genau den letzten modifizierten 4 Befehlen:
bash fhemcl.sh 8083 "\"cp -n /home/pi/fhem/log/*.log ./log/\""
bash fhemcl.sh 8083 "{qx(cp -n /home/pi/fhem/www/gplot/*.gplot ./www/gplot/)}"
bash fhemcl.sh instanz1:8083 "list -r TYPE=FileLog" |bash fhemcl.sh 8083
bash fhemcl.sh instanz1:8083 "list -r TYPE=SVG"|bash fhemcl.sh 8083


In gleicher Art und Weise kann man mittels DevSpec oder regExp beliebige Geräte oder Gruppen übernehmen.
Der Mechanismus, den ich verwende, funktioniert quasi analog der Verwendung Raw Def mit zwei Browsern, nur ohne klicken, Auswahl und Copy&Paste  :D

Viel Spaß
Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Scherheinz

Hallo Otto!

Das ist ja super wie du das machst! Es wird noch ein wenig Dauern bis ich einen weiteren Pi sowie ein Zeitfenster habe aber dann werde ich deine Anleitung gerne testen! :)

Vielen Dank für deine Bemühungen

Gruß

Frank

Otto123

ich lege mal noch eine Variante nach, die die zu kopierenden Dateien aus den Definitionen ermittelt:
datei=$(bash fhemcl.sh instanz1:8083 "list -r TYPE=FileLog"|grep -o ./log.*\\s|sed 's/%./*/g;s/.\/log/\/home\/pi\/fhem\/log/'|tr -d '\n')
bash fhemcl.sh 8083 "\"cp -n $datei ./log/\""
datei=$(bash fhemcl.sh instanz1:8083 "list -r TYPE=SVG"|grep -o " SVG .*"|sed 's/:CURRENT//;s/.*:/\/home\/pi\/fhem\/www\/gplot\//;s/.*/&.gplot /'|tr -d '\n')
bash fhemcl.sh 8083 "{qx(cp -n $datei ./www/gplot/)}"

Damit wird wirklich nur das kopiert, was auch verwendet wird.
Die Logdateien im großen Umfang muss man nonblocking kopieren, oder direkt über die Shell und anschließend noch chown ausführen. Deswegen sieht der cp Befehl bei den Log Dateien anders aus. Die gplot Dateien sind klein, da spielt das keine Rolle.

Das ist wirklich nur ein getesteter Ansatz zum Vorgehen und kein Copy&Paste Code ohne Nachzudenken!
Und wie ich gestern Abend bei unserem FHEM Stammtisch gelernt habe, wäre das bez. der Logs mit DbLog sicher viel einfacher.  ;D

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Scherheinz

Hallo Otto,
leider blieben meine Versuche bis jetzt erfolglos. Ich hab mir eine zweite SD Karte als Backup angelegt die regelmäßig getauscht wird und wenn wieder mehr Zeit habe versuche ich mich wieder an deiner Anleitung.
Danke und Gruß

Frank

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz