Backup: Unterschied zwischen den Versionen
K (Anpassung an geänderte Vorlage "Infobox Modul") |
Krikan (Diskussion | Beiträge) K (kleine Überarbeitung auf funktionsfähigen Stand) |
||
Zeile 11: | Zeile 11: | ||
Für Datensicherungszwecke ist in Fhem der Befehl '''backup''' integriert. | Für Datensicherungszwecke ist in Fhem der Befehl '''backup''' integriert. | ||
Im Auslieferungszustand von | Im Auslieferungszustand von Fhem werden die erstellten Backups im Ordner <code>./fhem/backup</code> abgelegt. Die Datensicherung umfasst das komplette Fhem-Verzeichnis. Damit sind alle angepassten und selbst erstellten Dateien und Icons enthalten. Das Backup wird als .tar.gz Datei abgelegt und trägt dabei im Namen das Datum und die Uhrzeit, an dem das Backup ausgeführt wurde. | ||
Weitere Details zu dem Befehl ''backup'' können der [http://fhem.de/commandref.html#backup commandref] entnommen werden. | Weitere Details zu dem Befehl ''backup'' können der [http://fhem.de/commandref.html#backup commandref] entnommen werden. | ||
== Backup manuell ausführen (Eingabefeld) == | == Backup manuell ausführen (Eingabefeld) == | ||
Um ein Backup zu erstellen genügt es, in der | Um ein Backup zu erstellen genügt es, in der Fhem [[PGM2|Benutzeroberfläche]] im [[Konfiguration#Befehl-Eingabefeld|Befehls-Eingabefeld]] den Befehl <code>backup</code> zu schreiben und mit {{Taste|Enter}} auszuführen. | ||
Danach findet sich eine Backupdatei in dem oben genannten Verzeichnis. In der Fhem Logdatei sollte ein Eintrag | Danach findet sich eine Backupdatei in dem oben genannten Verzeichnis. In der Fhem Logdatei sollte ein Eintrag | ||
:<code>backup done: FHEM- | :<code><nowiki>backup done: FHEM-<Datum>_<Uhrzeit>.tar.gz (<Größe> Bytes)</nowiki></code> | ||
zu finden sein. | zu finden sein. | ||
== Backup manuell ausführen (Weboberfläche) == | == Backup manuell ausführen (Weboberfläche) == | ||
Der Backup-Befehl kann in die Weboberfläche als manuell ausführbare Aktion eingebunden werden. | Der Backup-Befehl kann in die Weboberfläche als manuell ausführbare Aktion eingebunden werden. Nachfolgend wird ein [[dummy]]-Device im Raum Server angelegt und mit dem [[WebCmd|webCmd]] "Ausführen" versehen. Ein Klick auf den Link "Ausführen" des dummy-Devices erzeugt einen Event, der per [[notify]] das Backup startet. Dazu sind folgende Definitionen in der [[Konfiguration]] einzurichten: | ||
define SYS_Backup dummy | define SYS_Backup dummy | ||
attr SYS_Backup alias FHEM Backup ausführen | attr SYS_Backup alias FHEM Backup ausführen | ||
Zeile 35: | Zeile 31: | ||
define SYS_BackupRun notify SYS_Backup:* backup | define SYS_BackupRun notify SYS_Backup:* backup | ||
attr SYS_BackupRun room Server | attr SYS_BackupRun room Server | ||
Alternativ kann man das notify noch erweitern, | Alternativ kann man das notify noch so erweitern bzw. abändern, dass im state des dummy-Devices angezeigt wird, welche Backups bereits ausgeführt wurden. Zur Änderung des notify ruft man die [[Konfiguration#Objektdetails|Objektdetails]] des notify-Devices auf, klickt auf das {{Taste|DEF}} und kopiert den nachfolgenden Code als vollständigen Ersatz des alten Codes in das Editorfenster. Anschließend auf {{Taste|modify SYS_BackupRun}} klicken. | ||
Code für den {{Taste|DEF}}-Bereich des notify SYS_BackupRun (im Code das Backup-Verzeichnis ./backup gegebenenfalls noch an eigene Wünsche anpassen): | |||
SYS_Backup:* { | SYS_Backup:* { | ||
fhem("backup") | fhem("backup"); | ||
opendir DIR, " | opendir DIR, "./backup" or die $!; | ||
my $mybackups = "" | my $mybackups = ""; | ||
while(my $file = readdir DIR){ | while(my $file = readdir DIR){ | ||
next if($file eq "." || $file eq "..") | next if($file eq "." || $file eq ".."); | ||
$mybackups = $mybackups."$file | $mybackups = $mybackups."$file | ||
"; | |||
} | } | ||
closedir DIR | closedir DIR; | ||
fhem("set SYS_Backup ".$mybackups) | fhem("set SYS_Backup ".$mybackups); | ||
} | } | ||
== Backup automatisch ausführen == | == Backup automatisch ausführen == | ||
Die regelmäßige automatische Erstellung einer Datensicherung lässt sich mit folgenden | Die regelmäßige automatische Erstellung einer Datensicherung lässt sich mit folgenden [[at]] in der Konfiguration erreichen: | ||
define NTFY_BackupRun at *23:59:00 set SYS_Backup Ausführen | define NTFY_BackupRun at *23:59:00 set SYS_Backup Ausführen | ||
attr NTFY_BackupRun room Server | attr NTFY_BackupRun room Server | ||
Damit wird täglich um 23:59 ein Backup erstellt. | Damit wird täglich um 23:59 ein Backup erstellt. |
Version vom 26. März 2016, 18:45 Uhr
backup | |
---|---|
Zweck / Funktion | |
Datensicherung der Fhem-Installation | |
Allgemein | |
Typ | Befehl |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Sonstiges |
Modulname | 98_backup.pm |
Ersteller | rudolfkoenig (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Für Datensicherungszwecke ist in Fhem der Befehl backup integriert.
Im Auslieferungszustand von Fhem werden die erstellten Backups im Ordner ./fhem/backup
abgelegt. Die Datensicherung umfasst das komplette Fhem-Verzeichnis. Damit sind alle angepassten und selbst erstellten Dateien und Icons enthalten. Das Backup wird als .tar.gz Datei abgelegt und trägt dabei im Namen das Datum und die Uhrzeit, an dem das Backup ausgeführt wurde.
Weitere Details zu dem Befehl backup können der commandref entnommen werden.
Backup manuell ausführen (Eingabefeld)
Um ein Backup zu erstellen genügt es, in der Fhem Benutzeroberfläche im Befehls-Eingabefeld den Befehl backup
zu schreiben und mit Enter auszuführen.
Danach findet sich eine Backupdatei in dem oben genannten Verzeichnis. In der Fhem Logdatei sollte ein Eintrag
backup done: FHEM-<Datum>_<Uhrzeit>.tar.gz (<Größe> Bytes)
zu finden sein.
Backup manuell ausführen (Weboberfläche)
Der Backup-Befehl kann in die Weboberfläche als manuell ausführbare Aktion eingebunden werden. Nachfolgend wird ein dummy-Device im Raum Server angelegt und mit dem webCmd "Ausführen" versehen. Ein Klick auf den Link "Ausführen" des dummy-Devices erzeugt einen Event, der per notify das Backup startet. Dazu sind folgende Definitionen in der Konfiguration einzurichten:
define SYS_Backup dummy attr SYS_Backup alias FHEM Backup ausführen attr SYS_Backup room Server attr SYS_Backup webCmd Ausführen define SYS_BackupRun notify SYS_Backup:* backup attr SYS_BackupRun room Server
Alternativ kann man das notify noch so erweitern bzw. abändern, dass im state des dummy-Devices angezeigt wird, welche Backups bereits ausgeführt wurden. Zur Änderung des notify ruft man die Objektdetails des notify-Devices auf, klickt auf das DEF und kopiert den nachfolgenden Code als vollständigen Ersatz des alten Codes in das Editorfenster. Anschließend auf modify SYS_BackupRun klicken.
Code für den DEF-Bereich des notify SYS_BackupRun (im Code das Backup-Verzeichnis ./backup gegebenenfalls noch an eigene Wünsche anpassen):
SYS_Backup:* { fhem("backup"); opendir DIR, "./backup" or die $!; my $mybackups = ""; while(my $file = readdir DIR){ next if($file eq "." || $file eq ".."); $mybackups = $mybackups."$file "; } closedir DIR; fhem("set SYS_Backup ".$mybackups); }
Backup automatisch ausführen
Die regelmäßige automatische Erstellung einer Datensicherung lässt sich mit folgenden at in der Konfiguration erreichen:
define NTFY_BackupRun at *23:59:00 set SYS_Backup Ausführen attr NTFY_BackupRun room Server
Damit wird täglich um 23:59 ein Backup erstellt.
Backup vor Update
Ist in der Konfiguration der Eintrag
attr global backup_before_update 1
enthalten, wird vor der Durchführung eines Update erst eine Datensicherung in das festgelegte Backup Verzeichnis durchgeführt.