minecraft: fix backup script — skip missing nether/end dirs, safe save-on on tar failure

This commit is contained in:
Hermes Agent service account
2026-07-19 17:52:54 -05:00
parent e44805c9b6
commit 3f3ce68e18

View File

@@ -81,17 +81,22 @@ spec:
echo "[backup] Pausing auto-save (save-off)..." echo "[backup] Pausing auto-save (save-off)..."
rcon-cli save-off rcon-cli save-off
# Step 2: archive world directories # Step 2: archive world directories (nether/end may not exist yet)
echo "[backup] Archiving world to ${BACKUP_FILE}..." echo "[backup] Archiving world to ${BACKUP_FILE}..."
tar -czf "${BACKUP_FILE}" \ DIRS_TO_BACKUP="world"
-C /data \ [ -d /data/world_nether ] && DIRS_TO_BACKUP="$DIRS_TO_BACKUP world_nether"
world \ [ -d /data/world_the_end ] && DIRS_TO_BACKUP="$DIRS_TO_BACKUP world_the_end"
world_nether \ FILES_TO_BACKUP=""
world_the_end \ [ -f /data/whitelist.json ] && FILES_TO_BACKUP="$FILES_TO_BACKUP whitelist.json"
whitelist.json \ [ -f /data/ops.json ] && FILES_TO_BACKUP="$FILES_TO_BACKUP ops.json"
ops.json \ [ -f /data/banned-players.json ] && FILES_TO_BACKUP="$FILES_TO_BACKUP banned-players.json"
banned-players.json \ [ -f /data/banned-ips.json ] && FILES_TO_BACKUP="$FILES_TO_BACKUP banned-ips.json"
banned-ips.json
tar -czf "${BACKUP_FILE}" -C /data $DIRS_TO_BACKUP $FILES_TO_BACKUP || {
echo "[backup] ERROR: tar failed — re-enabling saves and exiting"
rcon-cli save-on
exit 1
}
echo "[backup] Archive complete: $(du -sh ${BACKUP_FILE} | cut -f1)" echo "[backup] Archive complete: $(du -sh ${BACKUP_FILE} | cut -f1)"