this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 72 lines 1.8 kB view raw
1#!/bin/bash 2 3# a script that creates daily backup and saves it to google drive 4# in case i forgot how to set up again, here's the post 5# https://kernova.io/blog/secure-and-automated-backups-with-borg-and-rclone/ 6 7# Stop script on any error 8set -e 9set -o pipefail 10 11DIR_ROOT=/media/external-hd-backup 12 13# Configuration 14BORG_REPO=$DIR_ROOT/borgbackup 15export BORG_PASSPHRASE=$(cat /root/.borg_passphrase) 16 17RCLONE_REMOTE="Google drive" 18RCLONE_DESTINATION="rasp" 19 20TIMESTAMP=$(date +%Y-%m-%d-%H%M%S) 21 22SOFT_SERVE_DIR=$DIR_ROOT/soft-serve/ 23VAULTWARDEN_DIR=$DIR_ROOT/vaultwarden-data/ 24 25log() { 26 echo "$(date "+%Y-%m-%d %H:%M:%S") - $1" 27} 28 29log "--- Starting daily backup ---" 30 31# 1. Create a backup of soft-serve application 32log "Step 1: Backing up soft-serve..." 33BORG_SOFT_SERVE_NAME="soft-serve-$TIMESTAMP" 34borg create --stats --progress \ 35 -C zstd,6 \ 36 "$BORG_REPO::$BORG_SOFT_SERVE_NAME" \ 37 "$SOFT_SERVE_DIR" 38log "Borg backup created: $BORG_SOFT_SERVE_NAME" 39 40# 2. Create a backup of vaultwarden application 41log "Step 2: Backing up vaultwarden..." 42BORG_VAULTWARDEN_NAME="vaultwarden-$TIMESTAMP" 43borg create --stats --progress \ 44 -C zstd,6 \ 45 "$BORG_REPO::$BORG_VAULTWARDEN_NAME" \ 46 "$VAULTWARDEN_DIR" 47log "Borg backup created: $BORG_VAULTWARDEN_NAME" 48 49# 3. Prune repository 50log "Step 3: Prunning to maintain 4 weekly and 6 monthly..." 51borg prune \ 52 --list \ 53 --show-rc \ 54 --keep-weekly 4 \ 55 --keep-monthly 6 \ 56 $BORG_REPO 57log "Prunning complete" 58 59# 4. Prune repository 60log "Step 4: Compacting borg repo..." 61borg compact $BORG_REPO 62log "Compacting complete" 63 64# 5. Sync borg repository to the rclone remote 65log "Step 5: Syncing repository to rclone remote..." 66rclone sync "$BORG_REPO" "$RCLONE_REMOTE":$RCLONE_DESTINATION --progress 67log "Sync complete" 68 69log "--- Daily backup finished successfully ---" 70 71exit 0 72