X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=handlers%2Frdiff;h=8faca9d654a827b7d447c48736c1ef1515e7b302;hb=b5ebe5d215f4f1775db5b31e6b4e55ad5dc5cf76;hp=adc4b5d8e6a6377545d4602cc0ae27e66295e71d;hpb=51d938cd68c7a2eeaca73de9e14c6c34efceca88;p=matthijs%2Fupstream%2Fbackupninja.git diff --git a/handlers/rdiff b/handlers/rdiff index adc4b5d..8faca9d 100644 --- a/handlers/rdiff +++ b/handlers/rdiff @@ -109,10 +109,10 @@ if [ $vservers_are_available = yes ]; then fi else [ -z "$vsinclude" ] || warning 'vservers support disabled in backupninja.conf, vsincludes configuration lines will be ignored' - [ -z "$vsnames" ] || warning 'vservers support disabled in backupninja.conf, vsnames configuration line will be ignored' fi # check the connection at the source and destination +[ -n "$test" ] || test=0 if [ "$testconnect" = "yes" ] || [ "${test}" -eq 1 ]; then test_connection $sourceuser $sourcehost test_connection $destuser $desthost @@ -155,7 +155,7 @@ fi removestr="${removestr}${destdir}/${label}"; debug "$removestr" -if [ ! $test ]; then +if [ $test = 0 ]; then output=`$removestr 2>&1` if [ $? = 0 ]; then debug $output @@ -172,17 +172,29 @@ execstr="$RDIFFBACKUP $options --print-statistics " set -o noglob +symlinks_warning="Maybe you have mixed symlinks and '*' in this statement, which is not supported." + # TODO: order the includes and excludes # excludes for i in $exclude; do - str="${i//__star__/*}" - execstr="${execstr}--exclude '$str' " + 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 done # includes for i in $include; do - [ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'" - str="${i//__star__/*}" - execstr="${execstr}--include '$str' " + [ "$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 done # vsinclude @@ -190,7 +202,12 @@ if [ $usevserver = yes ]; then for vserver in $vsnames; do for vi in $vsinclude; do str="${vi//__star__/*}" - execstr="${execstr}--include '$VROOTDIR/$vserver$str' " + str=`readlink -f $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" + fi done done fi @@ -204,7 +221,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