diff -ruN e-smith-backup-2.2.0.old/root/etc/e-smith/events/actions/workstation-backup-dar e-smith-backup-2.2.0/root/etc/e-smith/events/actions/workstation-backup-dar --- e-smith-backup-2.2.0.old/root/etc/e-smith/events/actions/workstation-backup-dar 2013-07-06 19:17:02.000000000 -0700 +++ e-smith-backup-2.2.0/root/etc/e-smith/events/actions/workstation-backup-dar 2013-07-06 19:16:39.000000000 -0700 @@ -206,20 +206,14 @@ } $tmpdir = $mntdir . '/tmp_dir'; -if (-d "$tmpdir/$id") -{ - eval {rmtree("$tmpdir/$id")}; - ldie("Error while deleting $tmpdir/$id : $@.\n") if $@; -} -eval {mkpath("$tmpdir/$id")}; -ldie("Error while creating $tmpdir/$id : $@. Maybe insufficient rights on backup directory.\n") - if $@; + +&remove_tree ("$tmpdir/$id"); +&create_tree ("$tmpdir/$id"); # we know right backup directory is in line and we can write on it. $report .= "Backup temp directory $tmpdir/$id is mounted and is writable \n"; # rotating backup indicators - ++$incnum; $incnum = 0 if ($dow == $fullday && $incnum > $daysinset-7) || ($fullday == 7 && $incnum >= $daysinset); @@ -245,8 +239,7 @@ unless ( -d $setdirname ) { - eval {mkpath($setdirname)}; - ldie("Can't create $setdirname : $@.\n") if $@; + &create_tree ($setdirname); $report .= "Backup directory $id/$setname created \n"; } @@ -320,10 +313,8 @@ if ($incnum == 0) { $report .= "Rotating backups in a new set $setdirname. \n"; - eval {rmtree($setdirname)}; - ldie("Error while deleting $setdirname : $@.\n") if $@; - eval {mkpath("$setdirname")}; - ldie("Error while creating $setdirname : $@.\n") if $@; + &remove_tree ($setdirname); + &create_tree ($setdirname); } $report .= "Moving backup files to target directory $setdirname \n"; @@ -334,8 +325,10 @@ unless move($_, $setdirname); } -# update dar_manager catalog +# Remove temporary directory as no longer needed +&remove_tree ("$tmpdir/$id"); +# update dar_manager catalog $report .= "Updating catalog\n"; my %backupfiles = (); @@ -540,3 +533,21 @@ close(INPUT); return $code; } + + +sub remove_tree +{ + my $tree = shift; + if (-d "$tree") + { + eval {rmtree("$tree")}; + ldie("Error while deleting $tree : $@.\n") if $@; + } +} + +sub create_tree +{ + my $tree = shift; + eval {mkpath("$tree")}; + ldie("Error while creating $tree : $@. Maybe insufficient rights directory.\n") if $@; +}