mirror of
https://codeberg.org/hyperreal/admin-scripts
synced 2024-11-01 16:03:06 +01:00
51 lines
1.2 KiB
Bash
Executable File
51 lines
1.2 KiB
Bash
Executable File
#!/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
|