FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: raspklaus am 19 März 2015, 11:37:54

Titel: Automatisches Backup
Beitrag von: raspklaus am 19 März 2015, 11:37:54
Hallo zusammen,

im Threat http://forum.fhem.de/index.php/topic,30873.msg234412.html#msg234412 (http://forum.fhem.de/index.php/topic,30873.msg234412.html#msg234412)

wurde das folgende Backupscript vorgestellt

{ `mkdir savedir` }

define backupCfg notify global:SAVE {\
  my $now = TimeNow();; $now =~ s/ /_/g;; \
  `cp $attr{global}{configfile} ./savedir/fhem.cfg.$now`;;\
  `cp $attr{global}{statefile} ./savedir/fhem.state.$now`;;\
}


Ich habe das so übernommen, siehe Anhang bekomme aber die folgende Fehlermeldung

2015.03.19 11:15:06 3: backupCfg return value: Can't modify single ref constructor in scalar assignment at (eval 438143) line 1, at EOF
syntax error at (eval 438143) line 1, at EOF


Was läuft da schräg ?
Titel: Antw:Automatisches Backup
Beitrag von: Icinger am 19 März 2015, 11:50:21
Ich würd mal sagen, du hast einen Code, der fürs Config-File gedacht war, direkt in ein Def kopiert.

Nimm die ganzen Backslashes raus, dann klappts (gerade getestet).
{ my $now = TimeNow();; $now =~ s/ /_/g;  `cp $attr{global}{configfile} ./savedir/fhem.cfg.$now`;  `cp $attr{global}{statefile} ./savedir/fhem.state.$now`;}

lg, Ici
Titel: Antw:Automatisches Backup
Beitrag von: marvin78 am 19 März 2015, 11:51:34
Mach mal die ganzen \ raus. Die braucht man nicht, wenn man im DEF des Devices arbeitet. Außerdem muss man dort in diesem Fall auch die ; nicht verdoppeln. So müsste es im DEF aussehen:

global:SAVE {
  my $now = TimeNow();
  $now =~ s/ /_/g;
  `cp $attr{global}{configfile} ./savedir/fhem.cfg.$now`;
  `cp $attr{global}{statefile} ./savedir/fhem.state.$now`;
}


Ich würde das ganze aber in eine sub in einer myUtils auslagern. Also so

global:SAVE {myBackup}

sub myBackup() {
  my $now = TimeNow();
  $now =~ s/ /_/g;
  `cp $attr{global}{configfile} ./savedir/fhem.cfg.$now`;
  `cp $attr{global}{statefile} ./savedir/fhem.state.$now`;
}
Titel: Antw:Automatisches Backup
Beitrag von: raspklaus am 19 März 2015, 12:09:19
Danke Icinger, das wars