Hauptfunktionen auf USB-stick auslagern

Begonnen von eldar, 07 Januar 2015, 12:29:06

Vorheriges Thema - Nächstes Thema

eldar

Hallo,

wie wäre es mögliche Backup- und Log-Dateien automatisch auf einen USB-stick zu schreiben, entweder als Kopie oder direkt an Stelle der Dataien in /opt/fhem/?

Und, kann man *.cfg Dataien, die auf dem USB-stick sind und mit "include" in fhem.cfg aufgerufen werden unter "own modules and helper files" anzeigen?

Danke,
Eldar

nesges

#1
Für ein Backup der fhem-Installation bietet sich rsync mit Parameter -aR an:

root@wopr:/# rsync -aR /opt/fhem/ root@sky:/data/share/data/fhem

Statt einer anderen Maschine (hier ein Verzeichnis auf dem NAS "sky") kannst du natürlich auch den Pfad zum USB Stick angeben.  Das Backup per Cron (crontab -e) jede Nacht um 4:00 Uhr starten:

0 4 * * * /usr/bin/rsync -aR /opt/fhem/ root@sky:/data/share/data/fhem

Zu "an Stelle der Dateien in /opt/fhem": Wenn ich die Frage richtig verstehe, willst du die Dateien in der fhem-Installation durch Verweise auf Dateien auf dem USB-Stick ersetzen. Dazu kannst du sie auf den Stick verschieben (mv) und dann verlinken (ln -s). Empfehlen würde ich das allerdings nicht, der USB-Stick ist wahrscheinlich tendenziell störanfälliger als ein eingebauter Speicher. Ein hochfrequenteres rsync (zB stündlich) oder ein Monitoring mit iwatch (http://iwatch.sourceforge.net/index.html) o.ä. wäre wahrscheinlich die bessere Lösung.

chris1284

#2
Bei deinen wünschen kannst du auch gleich den ganzen fhemordner auf den stick packen...
( zb /opt auf den stick)

Deine cfg dateien musst du nur nach /opt/fhem/FHEM/ schieben um sie zu bearbeiten oder dahin verlinken (symlink)

Du kannst für das backup auch einfach den stick alsmpfad angeben http://fhem.de/commandref.html#backupdir

Filelog kannst du auch einfach in einem anderen pfad legen http://fhem.de/commandref.html#FileLog

eldar

Danke :) Ich war mir nicht sicher ob FHEM von einem USB aus funktionieren würde. Die Idee war es alle konfigurationsabhängigen Dateien auf einem USB-Stick zu haben, so das nur der Stick getauscht werden muss um alle Änderungen zu übernehmen. (Außerdem könnte dadurch vielleicht die Lebenserwartung der RaspberryPi-SD-Karte verlängert werden, da das meiste read/write auf dem USB passieren würde.)... Das Problem ist aber, dass FHEM Änderungen auf anderen *.cfg Dateien nicht speichert, selbst wenn die Dateien in /opt/fhem/FHEM sind, wenn man "save config" drückt. Werde also wahrscheinlich die config in fhem.cfg lassen und nicht mit "includes" rumspielen :)

Zum Backup, "rsync" werd ich wahrscheinlich auch ab und zu machen, aber eigentlich wollte ich nur alle Logs gleichzeitig auf dem Stick mitschreiben, so dass ich sehen kann was passiert ist, falls die Internetverbindung mal abbricht. Ich habe z.B. define Logfile_USBcopy FileLog /media/USB/log/fhem-%Y-%m.log fakelog versucht. Aber das gibt mir nur eine leere Datei. Für andere Sensoren, w.z.B. define FileLog_EnO_sensor_FFBE8D01_copy FileLog /media/USB/log/EnO_sensor_FFBE8D01_copy-%Y.log EnO_sensor_FFBE8D01 funktioniert es komischer Weise. Was ist falsch mit dem fakelog?

chris1284

#4
Zitat von: eldar am 07 Januar 2015, 17:23:43
Das Problem ist aber, dass FHEM Änderungen auf anderen *.cfg Dateien nicht speichert, selbst wenn die Dateien in /opt/fhem/FHEM sind, wenn man "save config" drückt. Werde also wahrscheinlich die config in fhem.cfg lassen und nicht mit "includes" rumspielen :)

wie hast du die includes erstellt? über fhem oder per hand (dann wohl ein rechte problem). wenn du die fhem.cfg einfach in fhem editierst und einfach alles entfernst, dann nicht save sondern save as "my_blabla.cfg" speicherst passt autom. der pfad und die rechte. dann musst du nur noch einmal die fhem.cfg im editor öffnen und die neue datei includen. ist aber nur ratsam wenn du weisst was du tust (gerade in hinblick auf include-reihenfolge)

eldar

Ah ok. Ich hatte es per Hand gemacht... Ja nee, ich lass das mit dem includen erstmal, bis ich alles ein bisschen besser verstehe :) ... Danke

Rince

Also so ganz prinzipiell:
Wenn du die RasPi SD Karte schonen willst, dann mach ne 100MB Ramdisk (in der fstab) und mounte diese über das log Verzeichnis.
Dann modifizierst du das fhem Skript (das fhem startet und beendet) so, dass es beim beenden von fhem die Logfiles von der Ramdisk wegsichert, und vor dem Start die log Dateien auf die Ramdisk kopiert...

Das sollte fhem im laufenden Betrieb spürbar beschleunigen und gleichzeitig kräftig deine SD Karte schonen. Nachteilig ist, dass du, solltest du den RasPi resetten während fhem, die Neuigkeiten in den Logfiles verlierst. Außerdem solltest du evtl. auf Monatslogs umsteigen...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

eldar


MichaelO

#8
Zitat von: Rince am 07 Januar 2015, 20:29:35
Also so ganz prinzipiell:
Wenn du die RasPi SD Karte schonen willst, dann mach ne 100MB Ramdisk (in der fstab) und mounte diese über das log Verzeichnis.
Dann modifizierst du das fhem Skript (das fhem startet und beendet) so, dass es beim beenden von fhem die Logfiles von der Ramdisk wegsichert, und vor dem Start die log Dateien auf die Ramdisk kopiert...

Das sollte fhem im laufenden Betrieb spürbar beschleunigen und gleichzeitig kräftig deine SD Karte schonen. Nachteilig ist, dass du, solltest du den RasPi resetten während fhem, die Neuigkeiten in den Logfiles verlierst. Außerdem solltest du evtl. auf Monatslogs umsteigen...

Da ich noch nicht ganz so sattelfest mit dem RasPi bin... wie genau geht das bitte? Ich würde die Logs dann gerne (regelmäßig?) auf meine NAS sichern. Hier liegt schon ein Verzeichnis, auf die fhem Konfiguration jeden Tag gesichert wird. Die Vorgehensweise hab ich hier gefunden, dann nur das at gegen ein DOIF getauscht.

http://www.meintechblog.de/2015/05/fhem-howto-automatisches-backup-auf-externem-nas/

Aber wie das mit den Logs insgesamt gehen könnte, entzieht sich leider meiner Kenntnis.

Gruß
Michael