Files
instance-setup-stuff/minecraft_server-backup

46 lines
1.0 KiB
Bash

#!/bin/bash
# shellcheck source=minecraft_server-env
. "${HOME}"/"${USER}"-env
mkdir -p "${HOME}"/backup_logs
logFile=${HOME}/backup_logs/$(date +%y_%m).log
{
echo -e "\n[+] minecraft backup\n"
mkdir -p /tmp/"${USER}"-backup
insock=${HOME}/${USER}.stdin
# https://www.reddit.com/r/admincraft/comments/vgdbi/minecraft_backups_saveoff_and_saveall/
echo "/save-off" >"${insock}"
echo "/save-all" >"${insock}"
systemctl --user stop "${USER}"-start.{socket,service}
cp -pr "${DATA_PATH}"/* /tmp/"${USER}"-backup
systemctl --user restart "${USER}"-start.{socket,service}
echo "/save-on" >"${insock}"
if ! rclone copy /tmp/"${USER}"-backup "${BUCKET_PATH}" -v; then
curl -Ss \
-H "Title: Minecraft Server" \
-H "Priority: 3" \
-H "Tags: warning,backup" \
-d "Backup not completed" \
"${NOTIF_URL}"
rm -r /tmp/"${USER}"-backup
exit 1
fi
curl -Ss \
-H "Title: Minecraft Server" \
-H "Priority: 2" \
-H "Tags: heavy_check_mark,backup" \
-d "Backup completed" \
"${NOTIF_URL}"
rm -r /tmp/"${USER}"-backup
} &>>"$logFile"