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
+60 -1
View File
@@ -21,6 +21,10 @@ Commands:
Restore options:
--all
--beta
--beta-ops
--beta-whitelist
--beta-world
--fabric
--fabric-essentials
--fabric-g4mespeed
@@ -59,6 +63,10 @@ cmd_restore() {
CLEANUP_VOLUMES=0
# Default flags
## Beta server
RESTORE_BETA_OPS=0
RESTORE_BETA_WHITELIST=0
RESTORE_BETA_WORLD=0
## Fabric server
RESTORE_FABRIC_ESSENTIALS=0
RESTORE_FABRIC_G4MESPEED=0
@@ -85,6 +93,9 @@ cmd_restore() {
while [ $# -gt 0 ]; do
case "$1" in
--all)
RESTORE_BETA_OPS=1
RESTORE_BETA_WHITELIST=1
RESTORE_BETA_WORLD=1
RESTORE_FABRIC_ESSENTIALS=1
RESTORE_FABRIC_G4MESPEED=1
RESTORE_FABRIC_WORLD=1
@@ -102,6 +113,24 @@ cmd_restore() {
RESTORE_VELOCITY_GLOBAL_WHITELIST=1
;;
--beta)
RESTORE_BETA_OPS=1
RESTORE_BETA_WHITELIST=1
RESTORE_BETA_WORLD=1
;;
--beta-ops)
RESTORE_BETA_OPS=1
;;
--beta-whitelist)
RESTORE_BETA_WHITELIST=1
;;
--beta-world)
RESTORE_BETA_WORLD=1
;;
--fabric)
RESTORE_FABRIC_ESSENTIALS=1
RESTORE_FABRIC_G4MESPEED=1
@@ -235,7 +264,10 @@ cmd_restore() {
BACKUP_ID=$(basename "$BACKUP_DIR")
# Validate options
if [ "$RESTORE_FABRIC_ESSENTIALS" -eq 0 ] \
if [ "$RESTORE_BETA_OPS" -eq 0 ] \
&& [ "$RESTORE_BETA_WHITELIST" -eq 0 ] \
&& [ "$RESTORE_BETA_WORLD" -eq 0 ] \
&& [ "$RESTORE_FABRIC_ESSENTIALS" -eq 0 ] \
&& [ "$RESTORE_FABRIC_G4MESPEED" -eq 0 ] \
&& [ "$RESTORE_FABRIC_WORLD" -eq 0 ] \
&& [ "$RESTORE_LUCKPERMS" -eq 0 ] \
@@ -263,6 +295,7 @@ cmd_restore() {
trap restore_cleanup_trap HUP INT QUIT ABRT TERM
create_snapshot || restore_cleanup_failure
restore_beta || restore_cleanup_failure
restore_fabric || restore_cleanup_failure
restore_luckperms || restore_cleanup_failure
restore_paper || restore_cleanup_failure
@@ -280,6 +313,7 @@ create_snapshot() {
# Map: source volume name -> cloned volume name
# Source names must match the mount points inside init
declare -Ag VOLUMES=(
[beta_data]="beta_data_$BACKUP_ID"
[fabric_data]="fabric_data_$BACKUP_ID"
[luckperms_data]="luckperms_data_$BACKUP_ID"
[paper_data]="paper_data_$BACKUP_ID"
@@ -304,6 +338,7 @@ create_snapshot() {
"${MOUNTS[@]}" \
init sh -ec '
for DIR in \
beta_data \
fabric_data \
luckperms_data \
paper_data \
@@ -321,6 +356,29 @@ create_snapshot() {
echo "Created snapshot successfully"
}
restore_beta() {
if [ "$RESTORE_BETA_OPS" -eq 1 ]; then
echo "Restoring Beta server's op list..."
docker compose run --rm init sh -c '
cp -a --reflink=auto "$1"/beta_data/ops.txt /beta_data
' -- "$BACKUP_DIR" || return 1
fi
if [ "$RESTORE_BETA_WHITELIST" -eq 1 ]; then
echo "Restoring Beta server's whitelist..."
docker compose run --rm init sh -c '
cp -a --reflink=auto "$1"/beta_data/white-list.txt /beta_data
' -- "$BACKUP_DIR" || return 1
fi
if [ "$RESTORE_BETA_WORLD" -eq 1 ]; then
echo "Restoring Beta server's world..."
docker compose run --rm init sh -c '
cp -a --reflink=auto "$1"/beta_data/world /beta_data
' -- "$BACKUP_DIR" || return 1
fi
}
restore_fabric() {
if [ "$RESTORE_FABRIC_ESSENTIALS" -eq 1 ]; then
echo "Restoring Fabric server's Essentials mod data..."
@@ -484,6 +542,7 @@ restore_cleanup() {
"${MOUNTS[@]}" \
init sh -ec '
for DIR in \
beta_data \
fabric_data \
luckperms_data \
paper_data \