#!/bin/sh set -eu backup_includes=/etc/restic/includes backup_excludes=/etc/restic/excludes backup_tag=foobar backup_keep=1m main() { # remove stale locks resticw unlock # run backup resticw backup \ --one-file-system \ --files-from "${backup_includes}" \ --exclude-file "${backup_excludes}" \ --tag "${backup_tag}" # prune backups older than $backup_keep duration resticw forget \ --keep-within "${backup_keep}" \ --prune \ --group-by "paths,tags" \ --tag "${backup_tag}" # TODO: restic check # TODO: dump stats to file in metrics format to /run/prom/restic } exit_hook() { resticw unlock } trap exit_hook INT EXIT main