diff options
Diffstat (limited to 'handlers/rdiff')
-rw-r--r-- | handlers/rdiff | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/handlers/rdiff b/handlers/rdiff index 90ca2a3..730e660 100644 --- a/handlers/rdiff +++ b/handlers/rdiff @@ -3,11 +3,13 @@ # requires rdiff-backup # +getconf options + setsection source getconf type; sourcetype=$type getconf label getconf user root; sourceuser=$user -getconf keep +getconf keep 60 getconf include getconf exclude @@ -55,30 +57,32 @@ execstr_clientpart="/" ## REMOVE OLD BACKUPS -if [ "$keep" -gt "0" ]; then - removestr="rdiff-backup --force --remove-older-than ${keep}D " - if [ "$desttype" == "remote" ]; then - removestr="${removestr}${destuser}@${desthost}::" - fi - removestr="${removestr}${destdir}/${label}"; - - debug "su $sourceuser -c '$removestr'" - if [ ! $test ]; then - output=`su $sourceuser -c "$removestr" 2>&1` - code=$? - if [ "$code" == "0" ]; then - debug $output - info "Removing backups older than $keep days succeeded." - else - warning $output - warning "Failed removing backups older than $keep." - fi +if [ "`echo $keep | tr -d 0-9`" == "" ]; then + keep="${keep}D" +fi + +removestr="rdiff-backup --force --remove-older-than $keep " +if [ "$desttype" == "remote" ]; then + removestr="${removestr}${destuser}@${desthost}::" +fi +removestr="${removestr}${destdir}/${label}"; + +debug "su $sourceuser -c '$removestr'" +if [ ! $test ]; then + output=`su $sourceuser -c "$removestr" 2>&1` + code=$? + if [ "$code" == "0" ]; then + debug $output + info "Removing backups older than $keep days succeeded." + else + warning $output + warning "Failed removing backups older than $keep." fi fi ## EXECUTE ## -execstr="$RDIFFBACKUP --print-statistics " +execstr="$RDIFFBACKUP $options --print-statistics " # TODO: order the includes and excludes |