mirror of
https://0xacab.org/liberate/backupninja.git
synced 2024-11-09 12:22:40 +01:00
dup, rdiff: implemented and documented simpler and clearer symlinks/globbing
behaviour, as proposed on http://lists.riseup.net/www/arc/backupninja/2006-07/msg00008.html
This commit is contained in:
parent
947309699d
commit
d395ae94a5
17
ChangeLog
17
ChangeLog
@ -40,10 +40,10 @@ version 0.9.4 -- unreleased
|
||||
svn:
|
||||
. Fixed inversed vsname emptiness check
|
||||
rdiff:
|
||||
. Symlink and globbing support enhancement and clarification: for
|
||||
a given include/exclude/vsinclude statement, rdiff handler now
|
||||
support EITHER globbing with '*' OR symlinks in the path.
|
||||
. Fixed improper include/exclude symlink dereference
|
||||
. Symlink and globbing support in include/exclude/vsinclude
|
||||
clarification: globbing is fully supported again, whereas no attempt
|
||||
is done to dereference symlinks anymore, due to incompatibilities
|
||||
between various readlink versions in this field.
|
||||
. Removed overzealous vsnames check
|
||||
. Now works if testconnect=no and if $test is not defined.
|
||||
. add $sshoptions config parameter in [dest] section of config so
|
||||
@ -52,9 +52,10 @@ version 0.9.4 -- unreleased
|
||||
options = --remote-schema 'ssh -p REMOTE-PORT -C %s rdiff-backup
|
||||
--server'
|
||||
dup:
|
||||
. Symlink and globbing support enhancement and clarification: for
|
||||
a given include/exclude/vsinclude statement, dup handler now
|
||||
support EITHER globbing with '*' OR symlinks in the path.
|
||||
. Symlink and globbing support in include/exclude/vsinclude
|
||||
clarification: globbing is fully supported again, whereas no attempt
|
||||
is done to dereference symlinks anymore, due to incompatibilities
|
||||
between various readlink versions in this field.
|
||||
. Removed over zealous vsnames check
|
||||
. Does not pretend anymore that duplicity can work without
|
||||
any passphrase
|
||||
@ -82,6 +83,8 @@ version 0.9.4 -- unreleased
|
||||
. Fix configdirectory error that forced you to use /etc/backup.d, thanks anarcat
|
||||
. When determining which backup actions to list, find now follows
|
||||
symlinks for $configdirectory
|
||||
dup.helper:
|
||||
. Fix: signing was enabled with symmetric encryption.
|
||||
changed cron permissions to 644
|
||||
minor documentation fixes
|
||||
improved RPM build process allowing 'make rpm-package' and 'make
|
||||
|
27
NEWS
27
NEWS
@ -1,8 +1,25 @@
|
||||
backupninja (0.9.4-1) UNRELEASED
|
||||
|
||||
* duplicity: Old (pre-0.9.4) example.dup file used to give false
|
||||
information about the way the GnuPG-related options are used.
|
||||
Please read the new /usr/share/doc/backupninja/examples/example.dup
|
||||
file, and update your own configuration files if needed.
|
||||
|
||||
* duplicity, rdiff: symlinks and globbing support in
|
||||
include/exclude/vsinclude was unclear and did not work in all
|
||||
situations, with weird behavious, due to incompatibilities
|
||||
between various readlink versions in this field. This has been made
|
||||
clear eventually: globbing is fully supported again, whereas no
|
||||
attempt is done to dereference symlinks anymore.
|
||||
Please read the new /usr/share/doc/backupninja/examples/example.dup
|
||||
or /usr/share/doc/backupninja/examples/example.rdiff file, and update
|
||||
your own configuration files if needed.
|
||||
|
||||
backupninja (0.9.2-1) unstable; urgency=low
|
||||
|
||||
WARNING FOR DUPLICITY USERS
|
||||
|
||||
1. Old (pre-0.9.4) example.dup file used to give false information about the way
|
||||
the GnuPG-related options are used. Please read the new example.dup file, and
|
||||
update your own configuration files if needed.
|
||||
Old (pre-0.9.2) example.dup file used to give false information about the way
|
||||
the GnuPG-related options are used. Please read the new example.dup file, and
|
||||
update your own configuration files if needed.
|
||||
|
||||
2. The bandwidthlimit option does not work anymore with duplicity >=0.4.2.
|
||||
Trying to solve this...
|
||||
|
@ -55,9 +55,21 @@ password = a_very_complicated_passphrase
|
||||
|
||||
[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
|
||||
include = /var/spool/cron/crontabs
|
||||
|
@ -34,11 +34,20 @@ type = local
|
||||
keep = 60
|
||||
|
||||
# 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
|
||||
include = /var/spool/cron/crontabs
|
||||
|
22
handlers/dup
22
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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user