X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fbackupninja.git;a=blobdiff_plain;f=handlers%2Frdiff;h=5561435331d6c0dab76e2f66678d52cd00309585;hp=79577c655ebd9c9c76e1b77d993281e18ff84ba5;hb=ea468148c55ce56e0c106f7e98ed249f8ffb388c;hpb=6d6d041bce7ddc077cb20ff0a63de4ca8b450403 diff --git a/handlers/rdiff b/handlers/rdiff index 79577c6..5561435 100644 --- a/handlers/rdiff +++ b/handlers/rdiff @@ -64,11 +64,19 @@ function check_consistency() { fi } +function check_cstream() { + local cstream=$1 + if [ ! -x $cstream ]; then + fatal "Can't find your cstream binary (trying: $cstream). If you use bwlimit you must have cstream installed." + fi +} + ### GET CONFIG ### getconf options getconf testconnect yes getconf nicelevel 0 +getconf bwlimit setsection source getconf type; sourcetype=$type @@ -167,6 +175,19 @@ if [ $test = 0 ]; then fi fi +# Add cstream + +if [ ! -z $bwlimit ]; then + check_cstream $CSTREAM; + if [ "$desttype" = "remote" ]; then + RDIFFBACKUP="$RDIFFBACKUP --remote-schema 'cstream -t $bwlimit | ssh %s \''rdiff-backup --server\'''" + elif [ "$sourcetype" = "remote" ]; then + RDIFFBACKUP="$RDIFFBACKUP --remote-schema 'ssh %s \''rdiff-backup --server\'' | cstream -t $bwlimit'" + else + fatal "You specified a bandwidth limit but neither your source nor destination types are remote." + fi +fi + ### EXECUTE ### execstr="$RDIFFBACKUP $options --print-statistics " @@ -179,23 +200,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 @@ -203,7 +214,7 @@ 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