From 3f3ce68e1887966a6376fd228119822db3eb755d Mon Sep 17 00:00:00 2001 From: Hermes Agent service account Date: Sun, 19 Jul 2026 17:52:54 -0500 Subject: [PATCH] =?UTF-8?q?minecraft:=20fix=20backup=20script=20=E2=80=94?= =?UTF-8?q?=20skip=20missing=20nether/end=20dirs,=20safe=20save-on=20on=20?= =?UTF-8?q?tar=20failure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../minecraft/backup-cronjob.yaml | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/cluster/applications/minecraft/backup-cronjob.yaml b/cluster/applications/minecraft/backup-cronjob.yaml index c17e295..be5b74a 100644 --- a/cluster/applications/minecraft/backup-cronjob.yaml +++ b/cluster/applications/minecraft/backup-cronjob.yaml @@ -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)"