#!/bin/bash if [[ $UID -ne 0 ]]; then echo "Must be run as root." exit 1 fi media_dir="/mnt/synapsedata/media_store" backup_date="$(date '+%Y%m%d-%Hh%Mm')" bak_folder="/mnt/backups/synapsebackup" borg_repo="$bak_folder/borg" mkdir -p "$bak_folder" # PSQL echo "Creating backup of PosgreSQL databases to $bak_folder/dump_$backup_date.sql" docker exec -t synapse_postgres pg_dumpall -c -U synapse > "$bak_folder/dump_$backup_date.sql" echo "Done, total size of all backups: $(du -hc $bak_folder/dump_* | grep total | grep -oP '^[\d\w]+')." # Media [[ -d "$borg_repo" ]] || borg init --encryption=none "$borg_repo" borg create --stats "$borg_repo::media-{now:%Y-%m-%d_%H:%M:%S}" "$media_dir" borg prune --stats --keep-daily=7 --keep-weekly=4 --keep-monthly=3 "$borg_repo" borg compact "$borg_repo"