X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=handlers%2Frdiff;h=730e660cfb9dc5d9664fd064981f65e031328a38;hb=b29b969b86d68d9fa0a70c6fd0b826cbb0ab49b2;hp=1f2058f47c4adf6d862a03b9e12140d13868dc33;hpb=ef78e14b29df0a9f010c3c2a07572bef5668d079;p=matthijs%2Fupstream%2Fbackupninja.git diff --git a/handlers/rdiff b/handlers/rdiff index 1f2058f..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; sourceuser=$user -getconf keep +getconf user root; sourceuser=$user +getconf keep 60 getconf include getconf exclude @@ -25,7 +27,7 @@ getconf host; desthost=$host [ "$desttype" == "remote" ] || fatal "Only remote destinations are supported" # see if we can login -debug 0 "su $sourceuser -c \"ssh -o PasswordAuthentication=no $desthost -l $destuser 'echo -n 1'\"" +debug "su $sourceuser -c \"ssh -o PasswordAuthentication=no $desthost -l $destuser 'echo -n 1'\"" if [ ! $test ]; then result=`su $sourceuser -c "ssh -o PasswordAuthentication=no $desthost -l $destuser 'echo -n 1'" 2>&1` if [ "$result" != "1" ]; then @@ -34,7 +36,7 @@ if [ ! $test ]; then fi # see that rdiff-backup has the same version as here -debug 0 "su $sourceuser -c \"ssh $desthost -l $destuser '$RDIFFBACKUP -V'\"" +debug "su $sourceuser -c \"ssh $desthost -l $destuser '$RDIFFBACKUP -V'\"" if [ ! $test ]; then remoteversion=`su $sourceuser -c "ssh $desthost -l $destuser '$RDIFFBACKUP -V'" 2>&1` localversion=`$RDIFFBACKUP -V` @@ -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 0 "su $sourceuser -c '$removestr'" - if [ ! $test ]; then - output=`su $sourceuser -c "$removestr" 2>&1` - code=$? - if [ "$code" == "0" ]; then - debug 0 $output - debug 1 "Removing backups older than $keep days succeeded." - else - debug 2 $output - debug 2 "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 @@ -100,16 +104,16 @@ execstr="${execstr}--exclude '/*' " # include client-part and server-part execstr="${execstr}$execstr_clientpart $execstr_serverpart" -debug 0 "su $sourceuser -c '$execstr'" +debug "su $sourceuser -c '$execstr'" if [ ! $test ]; then output=`su $sourceuser -c "$execstr" 2>&1` code=$? if [ "$code" == "0" ]; then - debug 0 $output - debug 1 "Successfully finished backing up source '$label'" + debug $output + info "Successfully finished backing up source '$label'" else - debug 2 $output - debug 2 "Failed backup up source '$label'" + warning $output + warning "Failed backup up source '$label'" fi fi