X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=handlers%2Frdiff.in;h=0f934299edd0ebc86fea6dfa286079bad4906f91;hb=3d1389c7fe72aaf27bb6bd2f9c759954a853f754;hp=46cae4981d0277e980d2b6671e32481e2aba4d67;hpb=579ea902ba24854b3c9acb307cda7e996e8e41a3;p=matthijs%2Fupstream%2Fbackupninja.git diff --git a/handlers/rdiff.in b/handlers/rdiff.in index 46cae49..0f93429 100644 --- a/handlers/rdiff.in +++ b/handlers/rdiff.in @@ -32,12 +32,12 @@ function get_version() { # if user or host is missing, returns the local version. if [ "$#" -lt 2 ]; then debug "$RDIFFBACKUP -V" - echo `$RDIFFBACKUP -V | cut -d. -f1,2` + echo `$RDIFFBACKUP -V` else local user=$1 local host=$2 debug "ssh $sshoptions $host -l $user '$RDIFFBACKUP -V'" - echo `ssh $sshoptions $host -l $user "$RDIFFBACKUP -V | grep rdiff-backup | cut -d. -f1,2"` + echo `ssh $sshoptions $host -l $user "$RDIFFBACKUP -V | grep rdiff-backup"` fi } @@ -77,6 +77,7 @@ getconf options getconf testconnect yes getconf nicelevel 0 getconf bwlimit +getconf ignore_version no setsection source getconf type; sourcetype=$type @@ -100,6 +101,10 @@ getconf host; desthost=$host getconf sshoptions check_consistency "destination" "$type" "$user" "$host" +if [ -n "$sshoptions" ] && echo $options | grep -qv "remote-schema"; then + options="$options --remote-schema 'ssh -C $sshoptions %s rdiff-backup --server'" +fi + ### CHECK CONFIG ### # If vservers are configured, check that the ones listed in $vsnames do exist. @@ -127,15 +132,16 @@ if [ "$testconnect" = "yes" ] || [ "${test}" -eq 1 ]; then test_connection $destuser $desthost fi -# see that rdiff-backup has the same version at the source and destination -sourceversion=`get_version $sourceuser $sourcehost` -destversion=`get_version $destuser $desthost` -if [ "$sourceversion" != "$destversion" ]; then - fatal "rdiff-backup does not have the same version at the source and at the destination." +if [ "$ignore_version" != "yes" ]; then + # see that rdiff-backup has the same version at the source and destination + sourceversion=`get_version $sourceuser $sourcehost` + destversion=`get_version $destuser $desthost` + if [ "$sourceversion" != "$destversion" ]; then + fatal "rdiff-backup does not have the same version at the source and at the destination." + fi fi # source specific checks -[ "$include" != "" -o "$vsinclude" != "" ] || fatal "No source includes specified" case $sourcetype in remote ) execstr_sourcepart="$sourceuser@$sourcehost::/" ;; local ) execstr_sourcepart="/" ;; @@ -231,7 +237,7 @@ fi set +o noglob # exclude everything else -execstr="${execstr}--exclude '/*' " +[ "$include" != "" -o "$vsinclude" != "" ] && execstr="${execstr}--exclude '/*' " # include client-part and server-part execstr="${execstr}$execstr_sourcepart $execstr_destpart"