diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | handlers/dup.helper.in | 14 | ||||
-rw-r--r-- | handlers/dup.in | 25 |
3 files changed, 40 insertions, 2 deletions
@@ -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: 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 |