From 91645a788b1fb563c93dcfc31943f13756f90c08 Mon Sep 17 00:00:00 2001 From: Peritia Date: Mon, 29 Dec 2025 12:01:47 +0100 Subject: [PATCH] update: mark as backuped --- .../minecraft-template-backup-routine.sh | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/minecraft/Scripts/minecraft-template-backup-routine.sh b/minecraft/Scripts/minecraft-template-backup-routine.sh index 8e99aa1..2934973 100644 --- a/minecraft/Scripts/minecraft-template-backup-routine.sh +++ b/minecraft/Scripts/minecraft-template-backup-routine.sh @@ -236,16 +236,20 @@ mark_user_activity_backuped() { local activity_file="$DATA_DIR/$SERVER_NAME/$USER_ACTIVITY_FILE" local marker="[backuped:${BACKUP_SIGNATURE}]" - [[ -z "${ACTIVITY_LINE_CUTOFF:-}" || "$ACTIVITY_LINE_CUTOFF" -le 0 ]] && return 0 + [[ "$ACTIVITY_LINE_CUTOFF" -le 0 ]] && return 0 - # Only mark lines that existed before the backup started - sed -i \ - -e "1,${ACTIVITY_LINE_CUTOFF}{ - /was logged in/{ - /$marker/! s/\$/ $marker/ - } - }" \ - "$activity_file" + local tmp + tmp="$(mktemp)" + + awk -v cutoff="$ACTIVITY_LINE_CUTOFF" -v marker="$marker" ' + NR <= cutoff && /was logged in/ && index($0, marker) == 0 { + print $0 " " marker + next + } + { print } + ' "$activity_file" > "$tmp" + + mv "$tmp" "$activity_file" } @@ -408,10 +412,6 @@ BACKUP_SIGNATURE="$(build_backup_signature)" ACTIVITY_LINE_CUTOFF=0 -if [[ "$CHECK_USER" == true ]]; then - ACTIVITY_LINE_CUTOFF=$(wc -l < "$DATA_DIR/$SERVER_NAME/$USER_ACTIVITY_FILE") -fi - if [[ "$CHECK_USER" == true ]]; then echo "[INFO] Running in --check-user mode" @@ -422,6 +422,14 @@ if [[ "$CHECK_USER" == true ]]; then fi +if [[ "$CHECK_USER" == true ]]; then + ACTIVITY_FILE="$DATA_DIR/$SERVER_NAME/$USER_ACTIVITY_FILE" + ACTIVITY_LINE_CUTOFF=$(wc -l < "$ACTIVITY_FILE") + echo "[DEBUG] Activity cutoff set to line $ACTIVITY_LINE_CUTOFF" +fi + + + if [[ "$FULL" == true ]]; then BACKUP_SOURCE="${SERVER_NAME}" BACKUP_MODE="full server directory"