pilasguru icon

Restic backup to B2 Cloud Storage

pilasguru | PRO | 08/17/22 06:42:44 PM UTC (Edited) | 0 ⭐ | 1376 👁️ | Never ⏰ | []
Bash |

1.3 KB

|

None

|

0 👍

/

0 👎

#######
# /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