Skip to content
Snippets Groups Projects
Commit f43c8566 authored by Jérôme Charaoui's avatar Jérôme Charaoui
Browse files

[borg] replace "keep*" options with simpler "keep"

The effect of "keep*" options is not straightforward to understand, so
replacing it with a simpler "keep" option, which replicates the
functionality of other backupninja handlers. This also simplifies the
helper, as the use is then only asked how many days of backups to keep.

At the same time, we add "prune_options" which allows for the use of the
"keep*" options as well as other useful prune options, like "--prefix".
parent fc0e0849
No related branches found
No related tags found
No related merge requests found
......@@ -41,16 +41,6 @@
## Default:
# init = yes
## how many hours, days, weeks and months of data to keep
##
## for more info see : borg help prune
##
## Default:
# keephourly = 1
# keepdaily = 7
# keepweekly = 4
# keepmonthly = -1
## A few notes about includes and excludes:
## 1. include paths do not support any kind of pattern matching
## 2. exclude paths support several types of pattern matching, the default being
......@@ -90,6 +80,33 @@ exclude = /var/lib/mysql
## Default:
# excludenodump = no
## whether to prune (remove) older backups
##
## Default:
# prune = yes
## keep all backups within this time frame.
## must be defined as a number followed by one of the
## following characters: "H", "d", "w", "m", "y"
##
## this option will be ignored if set to 0
##
## the default is to keep all backups made within the
## last 30 days
##
## Default:
# keep = 30d
## define extra command-line options for the "borg prune" operation.
##
## Example:
## prune_options = --keep-daily=7 --keep-weekly=4 --keep-monthly=6
##
## for more info see : borg help prune
##
## Default:
# prune_options =
######################################################
## destination section
## (where the files are copied to)
......
......@@ -270,19 +270,13 @@ do_borg_prune() {
declare -a tmp_array
set -o noglob
REPLY=
formBegin "$borg_title - pruning (how many backups to keep)"
formItem "hourly" "$borg_keephourly"
formItem "daily" "$borg_keepdaily"
formItem "weekly" "$borg_keepweekly"
formItem "monthly" "$borg_keepmonthly"
formBegin "$borg_title - keep all backups made within this number of days"
formItem "keep" "$borg_keep"
formDisplay
[ $? = 0 ] || return
tmp_array=($REPLY)
borg_keephourly=${tmp_array[0]}
borg_keepdaily=${tmp_array[1]}
borg_keepweekly=${tmp_array[2]}
borg_keepmonthly=${tmp_array[3]}
borg_keep=${tmp_array[0]}
set +o noglob
fi
......@@ -317,10 +311,7 @@ EOF
## for more info see : borg prune -h
prune = $borg_prune
keephourly = $borg_keephourly
keepdaily = $borg_keepdaily
keepweekly = $borg_keepweekly
keepmonthly = $borg_keepmonthly
keep = "${borg_keep}d"
[dest]
directory = $borg_directory
......@@ -386,10 +377,7 @@ borg_wizard() {
borg_compression=lz4
borg_encryption=none
borg_passphrase=
borg_keephourly=1
borg_keepdaily=7
borg_keepweekly=4
borg_keepmonthly=-1
borg_keep=30
# Global variables whose '*' shall not be expanded
set -o noglob
......
......@@ -24,15 +24,13 @@ getconf bwlimit
setsection source
getconf init yes
getconf prune yes
getconf keephourly 1
getconf keepdaily 7
getconf keepweekly 4
getconf keepmonthly -1
getconf include
getconf exclude
getconf excludecaches no
getconf excludenodump no
getconf prune yes
getconf keep 30d
getconf prune_options
setsection dest
getconf user
......@@ -153,7 +151,10 @@ fi
# borg prune
if [ "$prune" == "yes" ]; then
prunestr="borg prune --keep-hourly $keephourly --keep-daily $keepdaily --keep-weekly $keepweekly --keep-monthly $keepmonthly $execstr_repository"
if [ ! -z $keep ] && [ ! "$keep" == "0" ]; then
prune_options="${prune_options} --keep-within=${keep}"
fi
prunestr="borg prune $prune_options $execstr_repository"
debug "$prunestr"
if [ $test = 0 ]; then
output="`su -c "$prunestr" 2>&1`"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment