X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=handlers%2Frdiff;h=bdc1cbd25ddc7eb3b4916eea96794bfd57873db1;hb=87143986c078fbdd103a41b3c543bc075bf44fdf;hp=8f0edfb558ffd6ef4bbe24caf8acc210629c11ae;hpb=a65bc7af30e0ba963a007bc47b6287054bc2f276;p=matthijs%2Fupstream%2Fbackupninja.git diff --git a/handlers/rdiff b/handlers/rdiff index 8f0edfb..bdc1cbd 100644 --- a/handlers/rdiff +++ b/handlers/rdiff @@ -17,8 +17,8 @@ function test_connection() { fi local user=$1 local host=$2 - debug "ssh -o PasswordAuthentication=no $host -l $user 'echo -n 1'" - local ret=`ssh -o PasswordAuthentication=no $host -l $user 'echo -n host is alive'` + debug "ssh $sshoptions -o PasswordAuthentication=no $host -l $user 'echo -n 1'" + local ret=`ssh $sshoptions -o PasswordAuthentication=no $host -l $user 'echo -n host is alive'` if echo $ret | grep "host is alive"; then debug "Connected to $host as $user successfully" else @@ -36,8 +36,8 @@ function get_version() { else local user=$1 local host=$2 - debug "ssh $host -l $user '$RDIFFBACKUP -V'" - echo `ssh $host -l $user "$RDIFFBACKUP -V | grep rdiff-backup"` + debug "ssh $sshoptions $host -l $user '$RDIFFBACKUP -V'" + echo `ssh $sshoptions $host -l $user "$RDIFFBACKUP -V | grep rdiff-backup"` fi } @@ -89,6 +89,7 @@ destdir=${destdir%/} getconf type; desttype=$type getconf user; destuser=$user getconf host; desthost=$host +getconf sshoptions check_consistency "destination" "$type" "$user" "$host" ### CHECK CONFIG ### @@ -148,15 +149,15 @@ if [ "`echo $keep | tr -d 0-9`" == "" ]; then keep="${keep}D" fi -removestr="$RDIFFBACKUP --force --remove-older-than $keep " +removestr="$RDIFFBACKUP $options --force --remove-older-than $keep " if [ "$desttype" == "remote" ]; then removestr="${removestr}${destuser}@${desthost}::" fi removestr="${removestr}${destdir}/${label}"; debug "$removestr" -if [ ! $test ]; then - output=`$removestr 2>&1` +if [ $test = 0 ]; then + output="`su -c "$removestr" 2>&1`" if [ $? = 0 ]; then debug $output info "Removing backups older than $keep days succeeded." @@ -178,23 +179,13 @@ symlinks_warning="Maybe you have mixed symlinks and '*' in this statement, which # excludes for i in $exclude; do str="${i//__star__/*}" - str=`readlink -f $str` - if [ -n "$str" ]; then - execstr="${execstr}--exclude '$str' " - else - warning "exclude statement ${i//__star__/*} will be ignored. $symlinks_warning" - fi + execstr="${execstr}--exclude '$str' " done # includes for i in $include; do [ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'" str="${i//__star__/*}" - str=`readlink -f $str` - if [ -n "$str" ]; then - execstr="${execstr}--include '$str' " - else - warning "include statement ${i//__star__/*} will be ignored. $symlinks_warning" - fi + execstr="${execstr}--include '$str' " done # vsinclude @@ -202,11 +193,11 @@ if [ $usevserver = yes ]; then for vserver in $vsnames; do for vi in $vsinclude; do str="${vi//__star__/*}" - str=`readlink -f $VROOTDIR/$vserver$str` + str="$VROOTDIR/$vserver$str" if [ -n "$str" ]; then execstr="${execstr}--include '$str' " else - warning "vsinclude statement ${vi//__star__/*} will be ignored for VServer $vserver. $symlinks_warning" + warning "vsinclude statement '${vi//__star__/*}' will be ignored for VServer $vserver. $symlinks_warning" fi done done @@ -221,7 +212,7 @@ execstr="${execstr}--exclude '/*' " execstr="${execstr}$execstr_sourcepart $execstr_destpart" debug "$execstr" -if [ ! $test ]; then +if [ $test = 0 ]; then output=`nice -n $nicelevel su -c "$execstr" 2>&1` if [ $? = 0 ]; then debug $output