#######
# /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!"
Comments