#!/usr/bin/env bash set -eu TEMP_DIR=$(mktemp -d) trap 'sudo -u mastodon mv /home/mastodon/db-backup.sql.temp /home/mastodon/db-backup.sql' SIGHUP SIGINT SIGQUIT SIGTERM trap 'rm -rf $TEMP_DIR' EXIT SIGHUP SIGINT SIGQUIT SIGTERM trap 'rm -rv /home/mastodon/db-backup.sql.temp' EXIT sudo -u mastodon mv -v /home/mastodon/db-backup.sql /home/mastodon/db-backup.sql.temp sudo -u mastodon pg_dump -U mastodon -Fc mastodon_production -p 5432 -f /home/mastodon/db-backup.sql rclone sync -c /etc minio:server0-backup/etc/ mkdir "${TEMP_DIR}/log" rsync -avz /var/log/ "${TEMP_DIR}/log" rclone sync "${TEMP_DIR}/log"/ minio:server0-backup/var-log/ mkdir "${TEMP_DIR}/jas" copy_items=( "cdn" "docker" "public" ".byobu" ".config" ".gmcapsulerc" ".muttrc" ".ssh" ".zshrc" ".gemini-certs" ) for item in "${copy_items[@]}"; do rsync -avz "/home/jas/$item" "${TEMP_DIR}/jas" done rclone sync -c "${TEMP_DIR}/jas"/ minio:server0-backup/home-jas/ rclone copy -c /home/mastodon/db-backup.sql minio:server0-backup/home-mastodon/ rclone copy -c /home/mastodon/live/.env.production minio:server0-backup/home-mastodon/ exit 0