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)..."
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}..."
tar -czf "${BACKUP_FILE}" \
-C /data \
world \
world_nether \
world_the_end \
whitelist.json \
ops.json \
banned-players.json \
banned-ips.json
DIRS_TO_BACKUP="world"
[ -d /data/world_nether ] && DIRS_TO_BACKUP="$DIRS_TO_BACKUP world_nether"
[ -d /data/world_the_end ] && DIRS_TO_BACKUP="$DIRS_TO_BACKUP world_the_end"
FILES_TO_BACKUP=""
[ -f /data/whitelist.json ] && FILES_TO_BACKUP="$FILES_TO_BACKUP whitelist.json"
[ -f /data/ops.json ] && FILES_TO_BACKUP="$FILES_TO_BACKUP ops.json"
[ -f /data/banned-players.json ] && FILES_TO_BACKUP="$FILES_TO_BACKUP banned-players.json"
[ -f /data/banned-ips.json ] && FILES_TO_BACKUP="$FILES_TO_BACKUP 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)"