diff options
| author | Olivier Berger <oberger@ouvaton.org> | 2010-11-21 10:07:36 +0100 | 
|---|---|---|
| committer | Olivier Berger <oberger@ouvaton.org> | 2011-04-25 22:40:44 +0200 | 
| commit | a1c2229e1a0d476fc02626f1326fa263955b17ee (patch) | |
| tree | 4f76e3ac412edc7d942d6d8a2c3aa070084f80c3 | |
| parent | 6aca9c822b640372b0fad24d2a3a288ef2cd6a0f (diff) | |
| download | backupninja-a1c2229e1a0d476fc02626f1326fa263955b17ee.tar.gz backupninja-a1c2229e1a0d476fc02626f1326fa263955b17ee.tar.bz2 | |
Proposed feature to address https://labs.riseup.net/code/issues/2492
| -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 | 
