rename appdata-Failover→appdata-Fallback in docs; critical sync 15→30min; transcode 3→7min
appdata-Failover → appdata-Fallback: All .md files updated — scripts and confs already used appdata-Fallback. Share was renamed; docs were the only stale references. critical_sync_maintenance.sh: */15 → */30, 96/day → 48/day: critical_sync_maintenance.sh header, master.conf, host1/2.conf comments, Orchestrators README, User Script Plug-in README, Partnership README/manual/script, Docker_Essentials README/downloaders_reset.sh, Fallback README, weekly_sync_maintenance.sh, user_script_plug-in.sh all updated. rsync_emby_failover User Script superseded: Emby dirty sync was already in HOST1_CRITICAL_SYNC_SHARES — it now runs inside critical_sync_maintenance.sh every 30min alongside auth sync and partnership check. Section in User Script Plug-in README marked for deletion from plugin. transcode_management.sh: */3 → */7: transcode_management.sh, transcode_manager.sh, transcode_cleanup.sh headers, Transcodes README/manual, Orchestrators README, User Script Plug-in README, user_script_plug-in.sh all updated.
This commit is contained in:
@@ -127,7 +127,7 @@ the array stops. Check with: `pgrep -f "stability_watchdog\|docker_watchdog\|fai
|
||||
```
|
||||
Category: Orchestrators
|
||||
Name: transcode_management
|
||||
Schedule: */3 * * * * (every 3 minutes)
|
||||
Schedule: */7 * * * * (every 7 minutes)
|
||||
Background: YES
|
||||
```
|
||||
|
||||
@@ -138,7 +138,7 @@ Background: YES
|
||||
|
||||
**What it does:**
|
||||
Runs transcode_cleanup.sh then transcode_manager.sh — in that exact order every
|
||||
3 minutes. Order is non-negotiable: cleanup removes stale files first so the manager
|
||||
7 minutes. Order is non-negotiable: cleanup removes stale files first so the manager
|
||||
sees real active session usage, not inflated numbers from ended sessions.
|
||||
|
||||
**transcode_cleanup.sh:**
|
||||
@@ -167,7 +167,7 @@ auto-flip to SSD, missing transcoding-temp → recreate immediately.
|
||||
```
|
||||
Category: Orchestrators
|
||||
Name: critical_sync_maintenance
|
||||
Schedule: */15 * * * * (every 15 minutes)
|
||||
Schedule: */30 * * * * (every 30 minutes)
|
||||
Background: YES
|
||||
```
|
||||
|
||||
@@ -177,13 +177,13 @@ Background: YES
|
||||
```
|
||||
|
||||
**What it does:**
|
||||
Keeps the auth stack and Emby watch state current on HOST2 — 15 minutes is the
|
||||
maximum staleness for failover-critical data.
|
||||
Keeps the auth stack and Emby watch state current on HOST2 — 30 minutes is the
|
||||
maximum staleness for fallback-critical data.
|
||||
|
||||
**Jobs in order:**
|
||||
```
|
||||
rsync Critical-Data — pushes auth stack to HOST2 (NPM rules, certs, LLDAP users,
|
||||
Authelia config). HOST2's auth is always within 15min of HOST1.
|
||||
Authelia config). HOST2's auth is always within 30min of HOST1.
|
||||
rsync Emby dirty sync — pushes watch states, user activity, library delta to HOST2
|
||||
with Emby running. WAL files excluded — safe mid-write.
|
||||
HOST2 Emby restarts after sync to pick up config changes.
|
||||
@@ -191,7 +191,7 @@ partnership --check — reads remote state file, increments offline counter
|
||||
unreachable, triggers auto-offboard at PARTNERSHIP_OFFLINE_THRESHOLD
|
||||
```
|
||||
|
||||
**Silent when healthy:** no output on clean cycles — runs 96 times per day.
|
||||
**Silent when healthy:** no output on clean cycles — runs 48 times per day.
|
||||
|
||||
---
|
||||
|
||||
@@ -286,35 +286,14 @@ in one orchestrated sequence.
|
||||
|
||||
### ── rsync_emby_failover ─────────────────────────────────────────────────────
|
||||
|
||||
```
|
||||
Category: Orchestrators
|
||||
Name: rsync_emby_failover
|
||||
Schedule: */30 * * * * (every 30 minutes)
|
||||
Background: YES
|
||||
```
|
||||
> **Superseded by `critical_sync_maintenance`.** Delete this User Script from the
|
||||
> plugin. The emby-fallback dirty sync now runs as step 2 inside
|
||||
> `critical_sync_maintenance.sh` every 30 minutes alongside the auth stack sync
|
||||
> and partnership check. Running both produces duplicate syncs.
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh \
|
||||
/mnt/user/Media_Server/Emby --profile=emby-fallback
|
||||
```
|
||||
|
||||
**What it does:**
|
||||
Keeps HOST2's Emby within 30 minutes of HOST1 on watch states, play positions, and
|
||||
library changes — with Emby running on both sides. Not a full sync (that's weekly) —
|
||||
this is continuous coverage of what matters for failover.
|
||||
|
||||
**What syncs (emby-fallback profile):**
|
||||
```
|
||||
Syncs: users.db, library.db, authentication.db, config/
|
||||
Skips: *.wal *.shm — WAL files being written by Emby, unsafe to copy mid-write
|
||||
transcodes/ — volatile, never needed on HOST2
|
||||
logs/ — local diagnostics only
|
||||
cache/ — rebuilt automatically
|
||||
```
|
||||
|
||||
**HOST2 Emby restarts after each sync** to pick up config changes.
|
||||
**Result:** if HOST1 goes down, users resume from a position at most 30min stale.
|
||||
The Emby dirty sync (`/mnt/user/Media_Server/Emby --profile=emby-fallback`) is
|
||||
configured in `HOST1_CRITICAL_SYNC_SHARES` in host1.conf. It runs automatically
|
||||
when critical_sync_maintenance.sh runs.
|
||||
|
||||
---
|
||||
|
||||
@@ -346,7 +325,7 @@ updates at zero extra downtime, weekly container restarts.
|
||||
5. Pull images remotely — if WEEKLY_SYNC_UPDATES_REMOTE=true (SSH to remote)
|
||||
6. rsync WEEKLY_SYNC_SHARES:
|
||||
/mnt/user/Media_Server/Emby — full clean mirror, databases checkpointed
|
||||
/mnt/user/appdata-Failover/Critical-Data — auth stack clean state
|
||||
/mnt/user/appdata-Fallback/Critical-Data — auth stack clean state
|
||||
7. Start remote containers— dependency order, new image, settle + verify each
|
||||
8. Start local containers — same
|
||||
9. docker_weekly_restart.sh — restarts less-critical services that benefit from
|
||||
@@ -774,7 +753,7 @@ Background: YES
|
||||
```bash
|
||||
#!/bin/bash
|
||||
/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh \
|
||||
/mnt/user/appdata-Failover/Critical-Data
|
||||
/mnt/user/appdata-Fallback/Critical-Data
|
||||
```
|
||||
|
||||
**What syncs:** auth stack — NPM proxy rules, TLS certificates, LLDAP user data,
|
||||
@@ -816,7 +795,7 @@ Background: YES
|
||||
```bash
|
||||
#!/bin/bash
|
||||
/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh \
|
||||
/mnt/user/appdata-Failover/Arrs_Stack
|
||||
/mnt/user/appdata-Fallback/Arrs_Stack
|
||||
```
|
||||
|
||||
**What syncs:** all arr appdata — Sonarr, Radarr, Lidarr, Prowlarr, Bazarr, Pinchflat
|
||||
@@ -837,7 +816,7 @@ Background: YES
|
||||
```bash
|
||||
#!/bin/bash
|
||||
/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh \
|
||||
/mnt/user/appdata-Failover/Important-Data
|
||||
/mnt/user/appdata-Fallback/Important-Data
|
||||
```
|
||||
|
||||
**What syncs:** NextCloud, Postgres-NextCloud, Immich, PostgreSQL-Immich appdata.
|
||||
@@ -857,7 +836,7 @@ Background: YES
|
||||
```bash
|
||||
#!/bin/bash
|
||||
/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh \
|
||||
/mnt/user/appdata-Failover/Gmer4Lfe
|
||||
/mnt/user/appdata-Fallback/Gmer4Lfe
|
||||
```
|
||||
|
||||
**What syncs:** HOST1 server appdata backup — everything in the Gmer4Lfe appdata share.
|
||||
@@ -1175,7 +1154,7 @@ Current usage on both ramdisk and SSD.
|
||||
```
|
||||
Category: Transcodes
|
||||
Name: transcode_manager_manual
|
||||
Schedule: None — run manually (runs via transcode_management.sh every 3 min)
|
||||
Schedule: None — run manually (runs via transcode_management.sh every 7 min)
|
||||
Background: NO
|
||||
```
|
||||
|
||||
@@ -1641,17 +1620,11 @@ Wrong startup setup (old approach):
|
||||
At Startup of Array:
|
||||
array_start BG: YES — single entry, handles everything
|
||||
|
||||
*/3 * * * * (every 3 min):
|
||||
*/7 * * * * (every 7 min):
|
||||
transcode_management BG: YES — cleanup then manager
|
||||
|
||||
*/10 * * * * (every 10 min):
|
||||
webgui_watchdog BG: YES — silent when healthy
|
||||
|
||||
*/15 * * * * (every 15 min):
|
||||
critical_sync_maintenance BG: YES — auth stack + Emby dirty + partnership check
|
||||
|
||||
*/30 * * * * (every 30 min):
|
||||
rsync_emby_failover BG: YES — Emby watch state sync
|
||||
critical_sync_maintenance BG: YES — auth stack + Emby dirty sync + partnership
|
||||
|
||||
0 */6 * * * (every 6 hours):
|
||||
arrs_failed_stalled_recovery BG: YES — blocklist + re-search failed imports
|
||||
|
||||
Reference in New Issue
Block a user