#!/usr/bin/env bash # {{ ansible_managed }} # This file is to cleanup your backup archive and move some snapshots to a external storage. set -euxo pipefail {% for repo in restic_archiver__repos %} {# define macro: how fast should we delete snapshots? Variables are defined via defaults! #} {% macro retention_pattern(repo) -%} {% if repo.keep_last is defined and repo.keep_last != None -%} --keep-last {{ repo.keep_last }} {%- else -%} --keep-last {{ restic_archiver__keep }} {%- endif %} \ {% if repo.keep_hourly is defined and repo.keep_hourly != None -%} --keep-hourly {{ repo.keep_hourly }} {%- else -%} --keep-hourly {{ restic_archiver__keep_hourly }} {%- endif %} \ {% if repo.keep_daily is defined and repo.keep_daily != None -%} --keep-daily {{ repo.keep_daily }} {%- else -%} --keep-daily {{ restic_archiver__keep_daily }} {%- endif %} \ {% if repo.keep_weekly is defined and repo.keep_weekly != None -%} --keep-weekly {{ repo.keep_weekly }} {%- else -%} --keep-weekly {{ restic_archiver__keep_weekly }} {%- endif %} \ {% if repo.keep_monthly is defined and repo.keep_monthly != None -%} --keep-monthly {{ repo.keep_monthly }} {%- else -%} --keep-monthly {{ restic_archiver__keep_monthly }} {%- endif %} \ {% if repo.keep_yearly is defined and repo.keep_yearly != None -%} --keep-yearly {{ repo.keep_yearly }} {%- else -%} --keep-yearly {{ restic_archiver__keep_yearly }} {%- endif -%} {% if repo.keep_within is defined and repo.keep_within != None %} \ --keep-within {{ repo.keep_within }} {% endif -%} {%- endmacro %} # Settings for Server {{ repo['name'] | string }} export RESTIC_REPOSITORY="{{ repo['location'] }}" export RESTIC_PASSWORD='''{{ repo['password'] | regex_replace('\'', '\'\\\'\'') }}''' BACKUP_NAME="{{ repo.name }}" {{ restic_install_path }}/restic forget {{ retention_pattern(repo) }} {% if repo.prune is defined and repo.prune == true %}--prune{% endif %} {% endfor %}