meta data for this page
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
linux:backup:duply [2017/06/14 06:51] – niziak | linux:backup:duply [2018/07/30 06:55] – [shell function] niziak | ||
---|---|---|---|
Line 59: | Line 59: | ||
**Note:** duply dosn't make any cleanup or deletions during '' | **Note:** duply dosn't make any cleanup or deletions during '' | ||
- | To perform maintenance of old backup accordign to '' | + | To perform maintenance of old backup accordign to '' |
duply with '' | duply with '' | ||
+ | |||
+ | Example options: | ||
+ | * MAX_FULL_BACKUPS=2 | ||
+ | * MAX_FULLS_WITH_INCRS=1 | ||
+ | Will keep 2 full backup sets, but only one with increments (last one). | ||
+ | |||
+ | Sometimes it is good to check whether incremental backups are meaningful (it depends on type of data stored). If command | ||
+ | <code bash> | ||
+ | can be short e.g. MAX_FULLBKP_AGE=7D | ||
+ | |||
====== Usage ====== | ====== Usage ====== | ||
Line 75: | Line 85: | ||
<file bash> | <file bash> | ||
+ | #!/bin/bash -ue | ||
+ | set -o pipefail | ||
+ | trap " | ||
+ | |||
duply gitlab backup | duply gitlab backup | ||
duply gitlab purge --force # list outdated backup archives and delete them | duply gitlab purge --force # list outdated backup archives and delete them | ||
+ | duply gitlab-to-grinnux purgeIncr --force | ||
+ | duply gitlab-to-grinnux purgeFull --force | ||
duply gitlab cleanup --extra-clean --force > /dev/null # list broken backup files and delete them | duply gitlab cleanup --extra-clean --force > /dev/null # list broken backup files and delete them | ||
+ | banner ALL OK | ||
</ | </ | ||
+ | ===== shell function ===== | ||
+ | <code bash> | ||
+ | #!/bin/bash -ueE | ||
+ | set -o pipefail | ||
+ | trap " | ||
+ | run_duply() { | ||
+ | echo " | ||
+ | duply ${1} backup | ||
+ | echo " | ||
+ | duply ${1} cleanup --extra-clean --force | ||
+ | duply ${1} purge --force | ||
+ | duply ${1} purgeIncr --force | ||
+ | duply ${1} purgeFull --force | ||
+ | echo " | ||
+ | duply ${1} cleanup --extra-clean --force > /dev/null | ||
+ | echo " | ||
+ | banner ${1} OK | ||
+ | } | ||
+ | </ | ||
====== SFTP and rbash ====== | ====== SFTP and rbash ====== | ||
Line 126: | Line 162: | ||
====== Issues ====== | ====== Issues ====== | ||
+ | |||
+ | ==== no acceptable kex algorithm ==== | ||
ssh: Exception: Incompatible ssh peer (no acceptable kex algorithm) | ssh: Exception: Incompatible ssh peer (no acceptable kex algorithm) | ||
Line 143: | Line 181: | ||
</ | </ | ||
+ | ==== can't be deleted ==== | ||
+ | <code bash> duply mybackup purge --force</ | ||
+ | < | ||
+ | Last full backup date: Wed May 24 01:11:54 2017 | ||
+ | There are backup set(s) at time(s): | ||
+ | Thu Nov 24 01:05:26 2016 | ||
+ | Fri Nov 25 01:09:43 2016 | ||
+ | Sat Nov 26 01:10:50 2016 | ||
+ | Which can't be deleted because newer sets depend on them. | ||
+ | No old backup sets found, nothing deleted. | ||
+ | </ | ||
+ | Solution is to run: | ||
+ | <code bash> duply mybackup purgeIncr --force</ | ||
+ | <code bash> duply mybackup purgeFull --force</ | ||