diff options
Diffstat (limited to 'handlers')
| -rw-r--r-- | handlers/dup | 22 | ||||
| -rw-r--r-- | handlers/dup.helper | 20 | ||||
| -rw-r--r-- | handlers/rdiff | 16 | ||||
| -rw-r--r-- | handlers/rdiff.helper | 20 | 
4 files changed, 39 insertions, 39 deletions
diff --git a/handlers/dup b/handlers/dup index b4a7c9d..15d1a02 100644 --- a/handlers/dup +++ b/handlers/dup @@ -134,24 +134,14 @@ 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  # vsincludes @@ -159,12 +149,8 @@ if [ $usevserver = yes ]; then     for vserver in $vsnames; do        for vi in $vsinclude; do  	 str="${vi//__star__/*}" -	 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 +	 str="$VROOTDIR/$vserver$str" +	 execstr="${execstr}--include '$str' "        done     done  fi diff --git a/handlers/dup.helper b/handlers/dup.helper index dbf9643..da299c6 100644 --- a/handlers/dup.helper +++ b/handlers/dup.helper @@ -199,6 +199,8 @@ do_dup_gpg() {        if [ "$dup_gpg_sign" == yes ]; then  	 do_dup_gpg_signkey ; [ $? = 0 ] || return 1        fi +   else +      dup_gpg_sign=no     fi     # a passphrase is alway needed @@ -310,9 +312,21 @@ password = $dup_gpg_password  [source] -# WARNING: include, exclude and vsinclude statements support EITHER globbing -# with '*' OR symlinks in the path; usage of both in the same statement is *not* -# supported and will lead to weird behaviour. +# A few notes about includes and excludes: +# 1. include, exclude and vsinclude statements support globbing with '*' +# 2. Symlinks are not dereferenced. Moreover, an include line whose path +#    contains, at any level, a symlink to a directory, will only have the +#    symlink backed-up, not the target directory's content. Yes, you have to +#    dereference yourself the symlinks, or to use 'mount --bind' instead. +#    Example: let's say /home is a symlink to /mnt/crypt/home ; the following +#    line will only backup a "/home" symlink ; neither /home/user nor +#    /home/user/Mail will be backed-up : +#      include = /home/user/Mail +#    A workaround is to 'mount --bind /mnt/crypt/home /home' ; another one is to +#    write : +#      include = /mnt/crypt/home/user/Mail +# 3. All the excludes come after all the includes. The order is not otherwise +#    taken into account.  # files to include in the backup  EOF diff --git a/handlers/rdiff b/handlers/rdiff index 79577c6..bdc1cbd 100644 --- a/handlers/rdiff +++ b/handlers/rdiff @@ -179,23 +179,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 +193,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 diff --git a/handlers/rdiff.helper b/handlers/rdiff.helper index 904ac98..42bcb1b 100644 --- a/handlers/rdiff.helper +++ b/handlers/rdiff.helper @@ -271,12 +271,22 @@ type = local  keep = $rdiff_keep  # A few notes about includes and excludes: -#   - include, exclude and vsinclude statements support EITHER globbing with '*' -#     OR symlinks in the path; usage of both in the same statement is *not* -#     supported and will lead to weird behaviour. -#   - All the excludes come after all the includes. The order is not otherwise -#     taken into account. +# 1. include, exclude and vsinclude statements support globbing with '*' +# 2. Symlinks are not dereferenced. Moreover, an include line whose path +#    contains, at any level, a symlink to a directory, will only have the +#    symlink backed-up, not the target directory's content. Yes, you have to +#    dereference yourself the symlinks, or to use 'mount --bind' instead. +#    Example: let's say /home is a symlink to /mnt/crypt/home ; the following +#    line will only backup a "/home" symlink ; neither /home/user nor +#    /home/user/Mail will be backed-up : +#      include = /home/user/Mail +#    A workaround is to 'mount --bind /mnt/crypt/home /home' ; another one is to +#    write : +#      include = /mnt/crypt/home/user/Mail +# 3. All the excludes come after all the includes. The order is not otherwise +#    taken into account. +# files to include in the backup  EOF     ## includes ##     if [ "$host_or_vservers" == host -o "$host_or_vservers" == both ]; then  | 
