diff options
Diffstat (limited to 'backup.sh')
-rwxr-xr-x | backup.sh | 37 |
1 files changed, 23 insertions, 14 deletions
@@ -28,7 +28,7 @@ # # See gpl-3.0.txt for full license text. -set -e +set -eu main() { if [[ $UID != 0 ]]; then @@ -95,15 +95,19 @@ main() { # This is called before creating the backup pre_backup() { - # save some data that's useful for restores - local backupDataDir=/root/backup-data/ - mkdir -p "$backupDataDir" - fdisk -l > "$backupDataDir/fdisk" - vgdisplay > "$backupDataDir/vgdisplay" - pvdisplay > "$backupDataDir/pvdisplay" - lvdisplay > "$backupDataDir/lvdisplay" - df -a > "$backupDataDir/df" - findmnt -l > "$backupDataDir/findmnt" + if in_array_startswith '/root/backup-data/' "${source_paths[@]}"; then + # save some data that's useful for restores + local backupDataDir=/root/backup-data/ + mkdir -p "$backupDataDir" + fdisk -l > "$backupDataDir/fdisk" + vgdisplay > "$backupDataDir/vgdisplay" + pvdisplay > "$backupDataDir/pvdisplay" + lvdisplay > "$backupDataDir/lvdisplay" + df -a > "$backupDataDir/df" + findmnt -l > "$backupDataDir/findmnt" + mdadm --detail --scan > "$backupDataDir/mdadm" + vgcfgbackup --file "$backupDataDir/vgcfgbackup" + fi # If you wish to use snapshots, create them here @@ -123,18 +127,23 @@ backup_borg() { local src=("$@") local -a options=( --verbose - --numeric-owner + --numeric-ids --compression lz4 --exclude-from "$TMPDIR/exclude-list-borg" ) if tty -s; then - options+=(--progress --stats) + options+=(--progress --stats --list --filter AME) fi borg create "${options[@]}" "$dst::$backup_prefix-$(date "+%Y%m%d-%H%M%S")" "${src[@]}" - borg prune --prefix "backup-" --keep-within 7d --keep-daily 7 --keep-weekly 12 --keep-monthly 6 --keep-yearly 0 -v "$dst" - borg prune --prefix "partial-" --keep-within 7d --keep-daily 7 --keep-weekly 12 --keep-monthly 6 --keep-yearly 0 -v "$dst" + + # Only purge when doing full backups. Increases partial backup speed and + # ensure that we have at least one recent full backup when we purge. + if [[ $backup_prefix == 'backup' ]]; then + borg prune --prefix "backup-" --keep-within 7d --keep-daily 7 --keep-weekly 12 --keep-monthly 6 --keep-yearly 0 -v "$dst" + borg prune --prefix "partial-" --keep-within 31d -v "$dst" + fi } ### support functions below ### |