This commit is contained in:
Olivier Berger 2010-11-21 10:07:36 +01:00
parent 6aca9c822b
commit a1c2229e1a
3 changed files with 40 additions and 2 deletions

View File

@ -11,6 +11,9 @@ version 0.9.9 -- UNRELEASED
(Closes Roundup bug #598)
. Remove support for duplicity < 0.4.4. Even etch-backports has
a newer one.
. Now support remove-all-but-n-full command for duplicity >=
0.9.10 to allow removal of increments for older full backups
(Closes #2492)
ldap:
. Fix reliance on bash for pipefail.
mysql:

View File

@ -124,6 +124,7 @@ do_dup_dest() {
formItem "keep" "$dup_keep"
formItem "incremental" "$dup_incremental"
formItem "increments" "$dup_increments"
formItem "keepincroffulls" "$dup_keepincroffulls"
formItem "bandwidthlimit" "$dup_bandwidth"
formItem "sshoptions" "$dup_sshoptions"
formDisplay
@ -141,8 +142,9 @@ do_dup_dest() {
dup_keep=${thereply[3]}
dup_incremental=${thereply[4]}
dup_increments=${thereply[5]}
dup_bandwidth=${thereply[6]}
dup_sshoptions=${thereply[7]}
dup_keepincroffulls=${thereply[6]}
dup_bandwidth=${thereply[7]}
dup_sshoptions=${thereply[8]}
done
set +o noglob
@ -424,6 +426,14 @@ increments = $dup_increments
#keep = yes
keep = $dup_keep
# for how many full backups do we keep their later increments ;
# default is all (keep all increments).
# increments for older full backups will be deleted : only the more
# recent ones (count provided) will be kept
#keepincrofulls = all
#keepincrofulls = 6
keepincrofulls = $dup_keepincroffulls
# full destination URL, in duplicity format; if set, desturl overrides
# sshoptions, destdir, desthost and destuser; it also disables testconnect and
# bandwithlimit. For details, see duplicity manpage, section "URL FORMAT".

View File

@ -26,6 +26,7 @@ setsection dest
getconf incremental yes
getconf increments 30
getconf keep 60
getconf keepincroffulls all
getconf desturl
getconf awsaccesskeyid
getconf awssecretaccesskey
@ -275,6 +276,30 @@ if [ "$keep" != "yes" ]; then
fi
fi
# remove-all-inc-of-but-n-full : remove increments of older full backups : only keep latest ones
if [ "$keep" != "yes" ]; then
if [ "$keepincroffulls" != "all" ]; then
if [ "$duplicity_major" -ge 0 -a "$duplicity_minor" -ge 9 -a "$duplicity_sub" -ge 10 ]; then
debug "$precmd duplicity remove-all-inc-of-but-n-full $keepincroffulls --force $execstr_options $execstr_serverpart"
if [ ! $test ]; then
export PASSPHRASE=$password
export FTP_PASSWORD=$ftp_password
output=`nice -n $nicelevel \
su -c \
"$precmd duplicity remove-all-inc-of-but-n-full $keepincroffulls --force $execstr_options $execstr_serverpart 2>&1"`
exit_code=$?
if [ $exit_code -eq 0 ]; then
debug $output
info "Duplicity remove-all-inc-of-but-n-full finished successfully."
else
debug $output
warning "Duplicity remove-all-inc-of-but-n-full failed."
fi
fi
fi
fi
fi
### Backup command
debug "duplicity $execstr_command $execstr_options $execstr_source --exclude '**' / $execstr_serverpart"
if [ ! $test ]; then