Hallo,
ich würde gerne den Trick der Woche mit dem Backup gerne bei mir implementieren. Ich mache alles so, wie im Wiki beschrieben (http://www.fhemwiki.de/wiki/Trick_der_Woche#Backup_der_Konfiguration_.28fhem.cfg_und_fhem.state.29_bei_jedem_.22save.22 (http://www.fhemwiki.de/wiki/Trick_der_Woche#Backup_der_Konfiguration_.28fhem.cfg_und_fhem.state.29_bei_jedem_.22save.22)) und will eben das folgende Notify einrichten:
define backupCfg notify global:SAVE {\
my $now = TimeNow();; $now =~ s/ /_/g;; \
`cp $attr{global}{configfile} ./backup_cfg-state/fhem.cfg.$now`;;\
`cp $attr{global}{statefile} ./backup_cfg-state/fhem.state.$now`;;\
}
Allerdings passiert bei Auslösung nichts, das Verzeichnis bleibt leer.
Ich habe mal ein paar Lösungsansätze versucht, aber leider passiert gar nichts - nicht mal eine Fehlermeldung, z.B. wenn ich folgendes zum Testen ins Befehlsfeld schreibe:
{`cp fhem.cfg hallo.cfg`}
Zum Hintergrund: bei mir läuft Fhem mit activeperl unter Windows - wobei er den ersten Befehl aus dem Wiki { `mkdir backup_cfg-state` } im Befehlsfeld auch ohne Quittung nimmt, aber eben ausführt und das Verzeichnis aufmacht.
Mit der Bitte um Hilfe, viele Grüße
doc
Unter Windows gibt es doch gar kein cp! Oder hast Du einen alias oder was auch immer unter Win dafür angelegt?
Ich würde vermuten dass es unter Win xcopy ist.
Gruß
Dan
Mein Gott, manchmal sitze ich aber auch auf der Leitung. Ich dachte irgendwie, dass das ein Perl-Befehl wäre. Ohne Worte...
Mit {`copy fhem.cfg hallo.cfg`}
geht schon mal der Beispielcode, jetzt also alles entsprechend umbauen und gut.
Meine Güte, danke für diesen Anschupser!
Viele Grüße
doc
Gut dass Du gleich dazu geschrieben hast dass Du FHEM unter Win betreibst, sonst wäre das sicherlich nicht gleich so offensichtlich zu finden gewesen.
Schön "richtig geschubst" zu haben...
Gruß
Dan
So, nachdem mich das jetzt nochmal Ewigkeiten gekostet hat, weil Windows nicht alle Zeichen mochte, der Copy-Befehl den vollen Pfad will, wenn man umbenennen möchte (da muss man erstmal drauf kommen ???), hier die funktionierende Lösung für Windows-Nutzer (Pfade müssen noch angepasst werden bzw. Ordner "backup" muss erstellt werden) - ich habe es allerdings in meine 99_myUtils.pm eingebaut, aufruf der CopySys() über das notify aus der Wiki:
sub
CopySys(){
my $now = strftime '%Y%m%d_%H%M%S', localtime;
system("copy C:\\FHEM\\fhem.cfg C:\\FHEM\\backup\\fhem".$now.".cfg");
system("copy C:\\FHEM\\fhem.save C:\\FHEM\\backup\\fhem".$now.".save");
}
Viele Grüße
doc