Update backup and restore scripts
Deploy / Deploy (push) Successful in 3m48s

This commit is contained in:
2026-09-15 18:59:53 +01:00
parent 7764e661be
commit 79f7910e4a
2 changed files with 93 additions and 1 deletions
+33
View File
@@ -4,6 +4,8 @@
## The number of backups to keep
BACKUPS_KEEP=24
CONTAINER_USER_ID="2015"
# Global variables (Do NOT change)
CLEANUP_FABRIC=false
CLEANUP_LUCKPERMS=false
@@ -18,6 +20,7 @@ main() {
broadcast_status started
backup_beta || cleanup_failure
backup_fabric || cleanup_failure
backup_luckperms || cleanup_failure
backup_paper || cleanup_failure
@@ -63,6 +66,9 @@ broadcast_status() {
STATUS="$1"
log_info "Broadcasting backup status: $STATUS"
if docker compose exec -T beta true > /dev/null 2>&1; then
docker compose exec -u "$CONTAINER_USER_ID" -T beta mc-send-to-console "say Backup $STATUS." > /dev/null 2>&1
fi
if docker compose exec -T fabric true > /dev/null 2>&1; then
docker compose exec -T fabric rcon-cli "tellraw @a [{\"text\":\"Server\",\"color\":\"light_purple\"},{\"text\":\": Backup $STATUS.\",\"color\":\"white\"}]" > /dev/null 2>&1
fi
@@ -71,6 +77,28 @@ broadcast_status() {
fi
}
backup_beta() {
log_info "Starting Beta backup..."
CLEANUP_BETA=false
if docker compose exec -T beta true > /dev/null 2>&1; then
CLEANUP_BETA=true
log_info "Beta server detected, disabling saves"
docker compose exec -u "$CONTAINER_USER_ID" -T beta mc-send-to-console "save-off" > /dev/null 2>&1
docker compose exec -u "$CONTAINER_USER_ID" -T beta mc-send-to-console "save-all" > /dev/null 2>&1
fi
docker compose run --rm init sh -c '
mkdir -p "$1"/beta_data &&
cp -a --reflink=auto /beta_data/world "$1"/beta_data &&
cp -a --reflink=auto /beta_data/white-list.txt "$1"/beta_data &&
cp -a --reflink=auto /beta_data/ops.txt "$1"/beta_data
' -- "$BACKUP_DIR" || return 1
log_info "Finished Beta backup"
}
backup_fabric() {
log_info "Starting Fabric backup..."
@@ -240,6 +268,11 @@ cleanup() {
# Ignore specified conditions to ensure cleanup runs to completion uninterrupted
trap '' HUP INT QUIT ABRT TERM
if [ "$CLEANUP_BETA" = true ]; then
log_info "Re-enabling Beta saves"
docker compose exec -u "$CONTAINER_USER_ID" -T beta mc-send-to-console "save-on" > /dev/null 2>&1
fi
if [ "$CLEANUP_FABRIC" = true ]; then
log_info "Re-enabling Fabric saves"
docker compose exec -T fabric rcon-cli save-on > /dev/null 2>&1