diff --git a/fhem/FHEM/98_backup.pm b/fhem/FHEM/98_backup.pm index e4a9c6133..face9ad81 100644 --- a/fhem/FHEM/98_backup.pm +++ b/fhem/FHEM/98_backup.pm @@ -29,7 +29,7 @@ use warnings; sub CommandBackup($$); sub parseConfig($); sub readModpath($$); -sub createArchiv($$); +sub createArchiv($$$); my @pathname; @@ -48,6 +48,7 @@ CommandBackup($$) { my ($cl, $param) = @_; + my $byUpdate = ($param && $param eq "startedByUpdate"); my $modpath = AttrVal("global", "modpath",""); my $configfile = AttrVal("global", "configfile", ""); my $statefile = AttrVal("global", "statefile", ""); @@ -100,7 +101,7 @@ CommandBackup($$) $ret = readModpath($modpath,$backupdir); # create archiv - $ret = createArchiv($backupdir, $cl); + $ret = createArchiv($backupdir, $cl, $byUpdate); @pathname = []; undef @pathname; @@ -165,9 +166,9 @@ readModpath($$) } sub -createArchiv($$) +createArchiv($$$) { - my ($backupdir,$cl) = @_; + my ($backupdir,$cl,$byUpdate) = @_; my $backupcmd = (!defined($attr{global}{backupcmd}) ? undef : $attr{global}{backupcmd}); my $symlink = (!defined($attr{global}{backupsymlink}) ? "no" : $attr{global}{backupsymlink}); my $tarOpts; @@ -197,7 +198,7 @@ createArchiv($$) } Log 2, "Backup with command: $cmd"; - if(!$fhemForked) { + if(!$fhemForked && !$byUpdate) { use Blocking; our $BC_telnetDevice; BC_searchTelnet("backup"); diff --git a/fhem/FHEM/98_update.pm b/fhem/FHEM/98_update.pm index 8cac16697..f222eb7d6 100644 --- a/fhem/FHEM/98_update.pm +++ b/fhem/FHEM/98_update.pm @@ -250,8 +250,8 @@ doUpdate($$$$) if(AttrVal("global", "backup_before_update", 0) && $arg ne "check" && $curr==1) { - my $cmdret = AnalyzeCommand(undef, "backup"); - if($cmdret !~ m/backup done.*|Started.*in the background/) { + my $cmdret = AnalyzeCommand(undef, "backup startedByUpdate"); + if ($cmdret !~ m/backup done.*/) { uLog 1, "Something went wrong during backup: $cmdret"; uLog 1, "update was canceled. Please check manually!"; return;