Exclude named profiles from merge auto-promote; add RSYNC_MERGE_ENABLED toggle
This commit is contained in:
@@ -502,6 +502,17 @@
|
|||||||
WEEKLY_RSYNC_ENABLED=true # Tier 2 — weekly_sync_maintenance.sh rsync section
|
WEEKLY_RSYNC_ENABLED=true # Tier 2 — weekly_sync_maintenance.sh rsync section
|
||||||
FALLBACK_RSYNC_ENABLED=true # Tier 2 — fallback.sh writeback jobs on handback
|
FALLBACK_RSYNC_ENABLED=true # Tier 2 — fallback.sh writeback jobs on handback
|
||||||
|
|
||||||
|
# ━━━ Download Webhook ━━━
|
||||||
|
# Immediate push to remote nodes on every Sonarr/Radarr/Lidarr Download event.
|
||||||
|
# Prevents remotes from searching for content that is already on disk locally.
|
||||||
|
DOWNLOAD_WEBHOOK_ENABLED=true
|
||||||
|
|
||||||
|
# ━━━ Rsync Merge Auto-Promote ━━━
|
||||||
|
# When enabled, rsync.sh pre-scans the remote before syncing and promotes to merge
|
||||||
|
# mode (pull-then-push) if ≥75% of remote top-level entries exist locally.
|
||||||
|
# Named profiles are always excluded from auto-promote regardless of this toggle.
|
||||||
|
RSYNC_MERGE_ENABLED=true
|
||||||
|
|
||||||
# ━━━ Rsync Defaults ━━━
|
# ━━━ Rsync Defaults ━━━
|
||||||
# Global fallback values used when no profile match is found.
|
# Global fallback values used when no profile match is found.
|
||||||
# Media shares in HOST*_DAILY_SYNC_SHARES always use these globals — no profile needed.
|
# Media shares in HOST*_DAILY_SYNC_SHARES always use these globals — no profile needed.
|
||||||
|
|||||||
+5
-2
@@ -271,8 +271,11 @@ check_remote_disks "$DIRECTORY"
|
|||||||
|
|
||||||
# ── Merge-run pre-scan ────────────────────────────────────────────────────────────────────────
|
# ── Merge-run pre-scan ────────────────────────────────────────────────────────────────────────
|
||||||
# Auto-promote to merge mode when ≥75% of remote's top-level entries exist locally.
|
# Auto-promote to merge mode when ≥75% of remote's top-level entries exist locally.
|
||||||
# Skipped when --merge-run is already set or --seed is active (remote was just created).
|
# Skipped when: --merge-run is already set, --seed is active, a named profile is resolved,
|
||||||
if [[ "$MERGE_RUN" == false && "$SEED" == false ]]; then
|
# or RSYNC_MERGE_ENABLED=false in master.conf.
|
||||||
|
if [[ "$MERGE_RUN" == false && "$SEED" == false \
|
||||||
|
&& "${RSYNC_MERGE_ENABLED:-true}" != "false" \
|
||||||
|
&& -z "${PROFILE_RSYNC_OPTS[$PROFILE_NAME]+x}" ]]; then
|
||||||
_remote_top=$(ssh -i "$SSH_KEY" -o ConnectTimeout=10 -o BatchMode=yes \
|
_remote_top=$(ssh -i "$SSH_KEY" -o ConnectTimeout=10 -o BatchMode=yes \
|
||||||
root@"$REMOTE_SERVER" "ls -1A '$DIRECTORY' 2>/dev/null | sort" 2>/dev/null)
|
root@"$REMOTE_SERVER" "ls -1A '$DIRECTORY' 2>/dev/null | sort" 2>/dev/null)
|
||||||
_remote_count=$(echo "$_remote_top" | grep -c . 2>/dev/null || echo 0)
|
_remote_count=$(echo "$_remote_top" | grep -c . 2>/dev/null || echo 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user