projects
/
matthijs
/
upstream
/
backupninja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added cancel
[matthijs/upstream/backupninja.git]
/
handlers
/
rdiff
diff --git
a/handlers/rdiff
b/handlers/rdiff
index 61eb7f5c7e05d5af6cfa82ae3303909269779f46..bec59ff69a8ff065be9a5ad1ab264650d7292ba3 100644
(file)
--- a/
handlers/rdiff
+++ b/
handlers/rdiff
@@
-12,6
+12,7
@@
getconf type; sourcetype=$type
getconf label
getconf keep 60
getconf include
getconf label
getconf keep 60
getconf include
+getconf vsinclude
getconf exclude
### DESTINATION ###
getconf exclude
### DESTINATION ###
@@
-24,14
+25,26
@@
getconf type; desttype=$type
getconf user; destuser=$user
getconf host; desthost=$host
getconf user; destuser=$user
getconf host; desthost=$host
+# See if vservers are configured
+if [ "$vservers" = "yes" ]
+then
+ if [ ! -d $VROOTDIR ]
+ then
+ fatal "vservers enabled, but $VROOTDIR does not exist!"
+ else
+ info "vserver method enabled"
+ usevserver=1
+ fi
+fi
+
[ "$destdir" != "" ] || fatal "Destination directory not set"
if [ "$desttype" == "remote" ]; then
# see if we can login
if [ "$testconnect" == "yes" ]; then
hostalive=0
[ "$destdir" != "" ] || fatal "Destination directory not set"
if [ "$desttype" == "remote" ]; then
# see if we can login
if [ "$testconnect" == "yes" ]; then
hostalive=0
- debug "ssh -o
PasswordAuthentication=no
$desthost -l $destuser 'echo -n 1'"
- ret=`ssh -o
PasswordAuthentication=no
$desthost -l $destuser 'echo -n host is alive'`
+ debug "ssh -o
-o PreferredAuthentications=publickey
$desthost -l $destuser 'echo -n 1'"
+ ret=`ssh -o
-o PreferredAuthentications=publickey
$desthost -l $destuser 'echo -n host is alive'`
if echo $ret | grep "host is alive"; then
debug "Connected to $desthost as $destuser successfully"
else
if echo $ret | grep "host is alive"; then
debug "Connected to $desthost as $destuser successfully"
else
@@
-39,8
+52,8
@@
if [ "$desttype" == "remote" ]; then
fi
fi
# see that rdiff-backup has the same version as here
fi
fi
# see that rdiff-backup has the same version as here
- debug "ssh $desthost -l $destuser '$RDIFFBACKUP -V'\""
- remoteversion=`ssh $desthost -l $destuser "$RDIFFBACKUP -V | grep rdiff-backup"`
+ debug "ssh
-o PreferredAuthentications=publickey
$desthost -l $destuser '$RDIFFBACKUP -V'\""
+ remoteversion=`ssh
-o PreferredAuthentications=publickey
$desthost -l $destuser "$RDIFFBACKUP -V | grep rdiff-backup"`
localversion=`$RDIFFBACKUP -V`
if [ "$remoteversion" != "$localversion" ]; then
fatal "rdiff-backup does not have the same version on this computer and the backup server."
localversion=`$RDIFFBACKUP -V`
if [ "$remoteversion" != "$localversion" ]; then
fatal "rdiff-backup does not have the same version on this computer and the backup server."
@@
-54,7
+67,8
@@
fi
[ "$label" != "" ] || fatal "Source missing label"
[ "$sourcetype" == "local" ] || fatal "Only local source type supported"
[ "$label" != "" ] || fatal "Source missing label"
[ "$sourcetype" == "local" ] || fatal "Only local source type supported"
-[ "$include" != "" ] || fatal "No source includes specified"
+[ "$include" != "" -o "$vsinclude" != "" ] || fatal "No source includes specified"
+#TODO should I test for vsinclude if usevservers=1?
execstr_clientpart="/"
execstr_clientpart="/"
@@
-101,6
+115,19
@@
for i in $include; do
execstr="${execstr}--include '$str' "
done
execstr="${execstr}--include '$str' "
done
+# vsinclude
+if [ $usevserver ]
+then
+ for vserver in `ls $VROOTDIR|grep -v lost+found`
+ do
+ for vi in $vsinclude
+ do
+ str="${vi//__star__/*}"
+ execstr="${execstr}--include '$VROOTDIR/$vserver$str' "
+ done
+ done
+fi
+
# exclude everything else
execstr="${execstr}--exclude '/*' "
# exclude everything else
execstr="${execstr}--exclude '/*' "