diff options
author | intrigeri <intrigeri@boum.org> | 2006-01-19 21:58:38 +0000 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2006-01-19 21:58:38 +0000 |
commit | 51d938cd68c7a2eeaca73de9e14c6c34efceca88 (patch) | |
tree | 01b9ec9937af45650a9a48a024d655af11bb9257 /handlers/rdiff | |
parent | 8bc9312e15bf0284b3767e1791c0de3522f410f2 (diff) | |
download | backupninja-51d938cd68c7a2eeaca73de9e14c6c34efceca88.tar.gz backupninja-51d938cd68c7a2eeaca73de9e14c6c34efceca88.tar.bz2 |
- dup & rdiff handlers: finally, a real and well tested fix for the globbing bug
- rdiff: it's now possible to choose exactly which vservers should be
backed-up, as it already was with duplicity handler, with the
"vsnames" configuration setting
Diffstat (limited to 'handlers/rdiff')
-rw-r--r-- | handlers/rdiff | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/handlers/rdiff b/handlers/rdiff index dc98501..adc4b5d 100644 --- a/handlers/rdiff +++ b/handlers/rdiff @@ -78,6 +78,7 @@ check_consistency "source" "$type" "$user" "$host" getconf label getconf keep 60 getconf include +getconf vsnames all getconf vsinclude getconf exclude @@ -92,11 +93,23 @@ check_consistency "destination" "$type" "$user" "$host" ### CHECK CONFIG ### -# See if vservers are configured +# If vservers are configured, check that the ones listed in $vsnames do exist. local usevserver=no -if [ $vservers_are_available = yes -a -n "$vsinclude" ]; then - info "vserver method enabled" - usevserver=yes +if [ $vservers_are_available = yes ]; then + if [ "$vsnames" = all ]; then + vsnames="$found_vservers" + else + if ! vservers_exist "$vsnames" ; then + fatal "At least one of the vservers listed in vsnames ($vsnames) does not exist." + fi + fi + if [ -n "$vsinclude" ]; then + info "Using vservers '$vsnames'" + usevserver=yes + 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 @@ -157,14 +170,16 @@ fi execstr="$RDIFFBACKUP $options --print-statistics " +set -o noglob + # TODO: order the includes and excludes # excludes -for i in "$exclude"; do +for i in $exclude; do str="${i//__star__/*}" execstr="${execstr}--exclude '$str' " done # includes -for i in "$include"; do +for i in $include; do [ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'" str="${i//__star__/*}" execstr="${execstr}--include '$str' " @@ -172,14 +187,16 @@ done # vsinclude if [ $usevserver = yes ]; then - for vserver in $found_vservers; do - for vi in "$vsinclude"; do + for vserver in $vsnames; do + for vi in $vsinclude; do str="${vi//__star__/*}" execstr="${execstr}--include '$VROOTDIR/$vserver$str' " done done fi +set +o noglob + # exclude everything else execstr="${execstr}--exclude '/*' " |