#!/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 mkdir "${TEMP_DIR}/etc" etc_copy_items=( "caddy" "docker" "postgresql" "systemd/network" "thelounge" ) for item in "${etc_copy_items[@]}"; do rsync -avz "/etc/$item" "${TEMP_DIR}/etc" done mkdir "${TEMP_DIR}/log" rsync -avz /var/log/ "${TEMP_DIR}/log" mkdir "${TEMP_DIR}/jas" jas_copy_items=( "cdn" "docker" "public" ".byobu" ".config" ".gmcapsulerc" ".muttrc" ".ssh" ".zshrc" ".gemini-certs" ) for item in "${jas_copy_items[@]}"; do rsync -avz "/home/jas/$item" "${TEMP_DIR}/jas" done rclone sync "${TEMP_DIR}"/ minio:server0-backup/ 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