Viele machen Backup - aber kontrollieren?
Oder wie geht Restore?
Nachtrag 2021: Der Artikel gilt für eine externes Backup/Restore nach wie vor. Auch wenn man mit Windows 10 kein WinScp mehr benötigt, da ssh/scp direkt im System verfügbar ist.
Hinweis auf den restore Befehl: Im Wiki gibt es Beiträge wie der FHEM eigene restore Befehl verwendet werden kann. Link1 Link2
Meine Vorgehensweise für ein komplettes Restore:
Was soll gesichert werden?
Wichtig ist die Applikation (FHEM) getrennt vom System (Raspbian) zu sichern. Man will ja mal das System neu machen, neue Hardware, neue Raspbian Version usw. Man kann nicht immer davon ausgehen, das man ein komplettes System Image auf einer anderen Hardware wieder einfach zum laufen bekommt.Meine Vorgehensweise für ein komplettes Restore:
- Systemimage neu aufspielen
- Anpassung machen: Hostname, ev. IP, Sprache, Zeit usw. (geht auch per Script)
- Install Script laufen lassen (siehe hier)
- Restore FHEM
Backup FHEM
Backup kann man direkt in FHEM in der Oberfläche machen:
- backup in der Kommandozeile eingeben oder
- als Automatik vorm Update einrichten
- oder per FHEM Geräte Definition als regelmäßiger Job
Wichtig ist in jedem Fall, dass man dafür sorgt, dass das Backup auch auf ein anderes Gerät übertragen wird und nicht nur lokal auf der SD Card liegt. Wenn die mal kaputt geht wäre es sonst blöd...
FHEM führt das backup seit geraumer Zeit im Hintergund aus, dass Problem mit doppelten Backups durch Browser Refresh ist damit Geschichte (hier noch beschrieben). Im Log entsteht ein Eintrag beim Start, und ein Eintrag wenn es fertig ist:
Backup with command: tar -cf - fhem.cfg ...
Backup done
Restore FHEM
Mit Winscp kopiere ich die gewünschte/aktuelle Backup Datei aus meinem Sicherungs-Verzeichnis auf das neue System nach /home/pi. Damit umgehe ich Schreibrechte, muss nichts verbiegen und es bleibt quasi eine temporäre Datei.
FHEM sollte jetzt beendet sein! Entweder mit shutdown in der FHEM Kommandozeile oder über Terminal (siehe unten).
Die eigentliche Wiederherstellung des Programmpfades erfolgt so:
sudo tar -xvzf /home/pi/FHEM-201xxxxx_xxxxxx.tar.gz -C /opt/fhem/
FHEM wieder starten und fertig, vorausgesetzt man hat System seitig bei der Neuinstallation nichts vergessen.
In neueren Systemen (systemd ab Jessie) funktioniert es mit systemctl:
sudo systemctl start fhem
sudo systemctl stop fhem
Die alten Befehl funktioniert auch unter Jessie noch:
sudo invoke-rc.d fhem start
sudo invoke-rc.d fhem stop
Danke, hat mir sehr geholfen!!
AntwortenLöschenDanke für die hilfreichen Anleitungen, ohne diese wäre es Anfängern unmöglich Fhem zu nutzen.
AntwortenLöschendanke, backup/restart hat mir sehr geholfen!
AntwortenLöschenDanke - hat mir vermutlich 2 bis 3 Tage Arbeit erspart!!
AntwortenLöschenHallo danke erstmal für den tollen blog-beitrag
AntwortenLöschenich habe das problem das ich die datei nicht auf dem ordner backup kopieren kann (keine schreibrechte) sagt Winscp mir immer wider (ich denke mit dem programm umgehe ich die rechte) oder muss ich noch was einstellen
Wieso denkst Du mit winscp umgehst Du Rechte? Ich habe ja geschrieben: Ins homedir des angemeldeten Benutzers (winscp Benutzer) kopieren, von dort dann nach /opt/fhem entpacken. In den Pfad backup würde ich nichts kopieren. Für weiteren Support mach besser einen Thread bei FHEM auf.
LöschenGruß Otto
Hallo Otto,
AntwortenLöschenhabe mich nach Deiner Anweisung gehalten, aber leider werden nur die Log Dateien wieder hergestellt.
Zur info :
habe einen neuen Raspberry 4 komplett neu aufgesetzt und wollte nun meine Sicherung einspielen. Doch leider funktioniert das nicht .
Weißt Du eine Lösung ?
Bekomme keine Fehlermeldungen!
Gruß
Wendelin
Hallo Wendelin,
Löschenwenn nur die Logdateien wiederhergestellt werden, klingt es mir danach, als ob Du in dem Moment keine Rechte hast, die existierenden Dateien zu überschreiben. Mit tar -tvf kannst Du Dir anschauen was überhaupt in der Sicherung ist. Mit ls -lhaR /opt/fhem/ kannst Du vorher und nachher die Rechte anschauen. Aber das hier ist keine Supportplattform, wenn es wirklich nicht geht, solltest Du einen Thread aufmachen und schildern was Du getan hast. Die nur auf meine Anleitung zu beziehen bringt da nichts. Du musst schreiben was du wirklich getan hast.
Gruß Otto
Hi Otto, kann ich mein Backup auch über ein bestehendes System rüberbügeln? die FHEM.cfg dürfte ja ausgetauscht werden.
AntwortenLöschenKlar, FHEM beenden und Restore machen und auf Fehlerausschriften achten. Es ist nie frei von Fehlermöglichkeiten! Stimmen z.B. die Rechte nicht, werden Dateien nicht "übergebügelt"!
LöschenGruß Otto
Hallo Otto,
AntwortenLöschengilt der obige Restore-Beitrag aktuell noch?
Kann fhem nicht mehr aufrufen...
LG Ingo
Halllo Ingo, ja klar der gilt nach wie vor für den Fall, dass Du ein Backup des FHEM Pfades gemacht hast. Alternativ habe ich auch mal am Anfang noch eine Bemerkung mit Links zum Wiki eingefügt. Der FHEM eigene restore Befehl (bzw. restoredirs) kann insbesondere nach einem Update helfen.
LöschenViele Grüße Otto
Versuche ich; vielen Dank, Otto!
AntwortenLöschenGuten Morgen, Otto,
AntwortenLöschenbekomme beim Backup folgende Fehlermeldung:
tar: ./FHEM/presence.sh.save: Funktion open fehlgeschlagen: Keine Berechtigung
tar: Beende mit Fehlerstatus aufgrund vorheriger Fehler
Kann ich dem entnehmen, dass das Backup - eben mit Ausnahme des presence - ansonsten funktioniert hat?
LG Ingo
Guten Morgen, ich würde davon ausgehen, dass das backup unvollständig ist. FHEM agiert mit user fhem, dieser kann offenbar benanntes Script nicht lesen. Du musst die Rechte in deinem FHEM Pfad bereinigen. Im Systemterminal:
Löschensudo chown -R fhem: /opt/fhem/
Gruß Otto
Hat super funktioniert. Tausend Dank, Otto!
AntwortenLöschenHallo Otto,
AntwortenLöschenich hab noch eine Frage ;-(
Nach Restore ließ sich FHEM nicht aufrufen. Dann habe ich zunächst wie verlinkt sudo chown fhem: /opt/fhem/fhem.cfg
sudo chown fhem: /opt/fhem/log/fhem.save gemacht und danach sudo -su fhem cp -R /opt/fhem/restoreDir/update/YYYY-MM-DD/* /opt/fhem/ (richtiges Datum eingesetzt). Jetzt startet FHEM, aber ohne Devices. Tausend Fehlermeldungen dieser Art im Log: Please define HUEDevice7 first.
Muss ich noch irgendetwas aktivieren oder liegt der Fehler womöglich schon beim Backup?
LG INgo
Hab einen Verdacht. Ausgangsbasis: Hatte Perl neu aufgesetzt und ein aktuelles FHEM (ohne eingerichtete Devices) aufgespielt. Wenn ich jetzt das restoreDir aufrufe, wird FHEM nach dem letzten FHEM-Update zurückgespielt (also ohne meine Devices) und nicht etwa meine FHEM-Sicherung (von einem anderen Raspi) mit allen Devices. Diese wird garnicht angeboten.
AntwortenLöschenBleibt also die Frage, warum FHEM sich nicht aufrufen lässt, wenn ich auf das frische Perl und das FHEM-ohne-Devices meine FHEM-Sicherung vom anderen Raspi aufspiele.
Hast Du einen Tipp?
LG Ingo
Hallo Ingo, mimm mir es nicht übel, aber der Blog als Supportplattform: das wird nix. Bitte mach ein Thema im FHEM Forum auf! Deine Situation wird ja immer komplexer.
LöschenrestorDir enthält NICHT DEIN/E System/Sicherung, sondern deine Config vom letzten save und/oder die config und die Dateien die beim update aktualsiert wurden. Du kannst damit entweder einen älteren config Stand und/oder auf die früheren Systemmodule zurück!
Gruß Otto
Sorry, danke.
AntwortenLöschenDanke für den Blog. Habe damit gerade erfolgreich den Umzug meines FHEM vom alten auf einen neuen Raspi vorgenommen. Allerdings sehe ich, dass beim Restore auch alte Dateien wieder auftauchen, z.B. eine /opt/fhem/Restart von 2014. Kann es sein, dass der restore den Fehler macht, "gute" aktuelle Dateien durch uralte Versionen zu überschreiben?
AntwortenLöschenNaja ein komplettes restore stellt alle Dateien aus dem Backup wieder her. Und Ja! es überschreibt dabei vorhandene Dateien. Wenn man das selektiv will, muss man das anders machen. Normal will man ja aber den Stand des backups wieder herstellen, in sich konsistent.
LöschenHallo Otto, danke für den Beitrag im Blog. Hat mir für das Restore sehr geholfen.
AntwortenLöschenIch würde mir noch wünschen, das auch im Fhem-Wiki zu Backup zu finden. Wäre das möglich? Nur für das will ich jetzt aber jetzt nicht einen Account beantragen
Gruß,
Dieter