summaryrefslogtreecommitdiffstats
path: root/roles/backup/templates/backup-systemd.sh.j2
blob: 24be22ea6e80e24df2e3b67c50c92f65ffb82a27 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env bash
set -euo pipefail

# shellcheck source=/dev/null
source "${CREDENTIALS_DIRECTORY}/{{ backup_name }}-backup.env"

export RESTIC_REPOSITORY="${BACKUP_REPO}"
export RESTIC_PASSWORD="${BACKUP_PASSWORD}"
export AWS_ACCESS_KEY_ID="${BACKUP_ACCESS_KEY_ID}"
export AWS_SECRET_ACCESS_KEY="${BACKUP_SECRET_ACCESS_KEY}"

CACHE_DIR="/var/cache/{{ backup_name }}-backup"

restic --cache-dir "$CACHE_DIR" snapshots &>/dev/null || restic --cache-dir "$CACHE_DIR" init

restic --cache-dir "$CACHE_DIR" backup {{ backup_paths | map('quote') | join(' ') }}

restic --cache-dir "$CACHE_DIR" forget \
  --keep-daily {{ backup_retention_daily }} \
  --keep-weekly {{ backup_retention_weekly }} \
  --keep-monthly {{ backup_retention_monthly }} \
  --prune