#!/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"