####### # /usr/local/etc/restic-env.sh ####### export B2_ACCOUNT_ID='005853df61406f00002' export B2_ACCOUNT_KEY='K02WMXFAh6MOVxyh1b233lMLyk\4vo' export RESTIC_REPOSITORY=b2:server-01:restic export RESTIC_PASSWORD_FILE=/root/restic/pw.restic export BACKUP_PATHS="/opt /root /var/lib/automysqlbackup" export EXCLUDES="--exclude data/logs/ --exclude database/" ####### # /root/restic/pw.restic ####### passw0rd ####### # MAIN SCRIPT ####### #!/usr/bin/env bash # This script is to backup with restic to b2 # Exit on failure or pipefail set -e -o pipefail BACKUP_TAG=rundeck-restic # How many backups to keep. RETENTION_DAYS=14 RETENTION_WEEKS=16 RETENTION_MONTHS=18 RETENTION_YEARS=3 source /usr/local/etc/restic-env.sh echo "To backup: $BACKUP_PATHS" # Remove locks in case other stale processes kept them in restic unlock & wait $! #Do the backup restic backup \ --verbose \ --tag $BACKUP_TAG \ $BACKUP_PATHS \ $EXCLUDES & wait $! # Remove old Backups restic forget \ --verbose \ --tag $BACKUP_TAG \ --prune \ --keep-daily $RETENTION_DAYS \ --keep-weekly $RETENTION_WEEKS \ --keep-monthly $RETENTION_MONTHS \ --keep-yearly $RETENTION_YEARS & wait $! # Check if everything is fine restic check & wait $! echo "Backup done!"