From a1c2229e1a0d476fc02626f1326fa263955b17ee Mon Sep 17 00:00:00 2001 From: Olivier Berger Date: Sun, 21 Nov 2010 10:07:36 +0100 Subject: Proposed feature to address https://labs.riseup.net/code/issues/2492 --- handlers/dup.helper.in | 14 ++++++++++++-- handlers/dup.in | 25 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) (limited to 'handlers') diff --git a/handlers/dup.helper.in b/handlers/dup.helper.in index 5cd9dc6..2594b0b 100644 --- a/handlers/dup.helper.in +++ b/handlers/dup.helper.in @@ -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". diff --git a/handlers/dup.in b/handlers/dup.in index 1d345a3..b58d34d 100644 --- a/handlers/dup.in +++ b/handlers/dup.in @@ -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 -- cgit v1.2.3