diff options
-rw-r--r-- | etc/backup.d/example.rdiff | 6 | ||||
-rw-r--r-- | handlers/rdiff | 44 |
2 files changed, 29 insertions, 21 deletions
diff --git a/etc/backup.d/example.rdiff b/etc/backup.d/example.rdiff index f0b9afb..476cf5a 100644 --- a/etc/backup.d/example.rdiff +++ b/etc/backup.d/example.rdiff @@ -1,4 +1,7 @@ +## passed directly to rdiff-backup +# options = --force + ###################################################### ## source section ## (where the files to be backed up are coming from) @@ -12,7 +15,8 @@ label = thishostname type = local # how many days of data to keep -keep = 185 +# (you can also use the time format of rdiff-backup, e.g. 6D5h) +keep = 60 # files to include in the backup # (supports globbing with '*') 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 |