diff --git a/Orchestrators/README-Orchestrators.md b/Orchestrators/README-Orchestrators.md index f2d790f..ab7f880 100644 --- a/Orchestrators/README-Orchestrators.md +++ b/Orchestrators/README-Orchestrators.md @@ -140,7 +140,7 @@ The same share lists are used by `failover.sh` for Tier 4 writeback — but in t Runs a clean nightly sync for Emby and the auth stack (Critical-Data) with containers stopped. This is the companion to the hourly dirty sync — it provides a fully consistent state on HOST2 once per night. ```bash -# Scheduled as: 30 2 * * * (2:30am daily — after daily_sync.sh finishes) +# Scheduled as: 30 2 * * 0 (2:30am Sunday — weekly clean sync) /mnt/user/appdata/unraid_scripts/Orchestrators/nightly_critical_full_sync.sh ``` @@ -303,10 +303,10 @@ This pattern means: */3 * * * * transcode_management.sh # cleanup then manager — every 3 minutes 0 1 * * * daily_sync.sh # 1am — media shares to remote 0 2 * * * media_management.sh # 2am — permissions, cleaners, arr cleanup -30 2 * * * nightly_critical_full_sync.sh # 2:30am — clean Emby + auth stack sync +30 2 * * 0 nightly_critical_full_sync.sh # 2:30am Sunday — clean Emby + auth stack ``` -The gaps are intentional. `daily_sync.sh` can take 30-60 minutes on a large library. `media_management.sh` starts at 2am giving daily_sync an hour to finish. `nightly_critical_full_sync.sh` starts at 2:30am giving media_management time to complete its permission and cleanup pass before Emby is stopped for the clean sync. +`daily_sync.sh` and `media_management.sh` run nightly — media shares and maintenance. `nightly_critical_full_sync.sh` runs weekly on Sunday — it stops Emby and the auth stack for a clean consistent sync. Running it weekly instead of nightly lets Emby's image cache stay warm on HOST2 throughout the week. The emby-failover dirty sync handles watch states, library structure, and auth every 30-60 minutes — the weekly clean sync covers metadata, plugins, and a full database flush. --- diff --git a/Rsync/README-Rsync_Setup.md b/Rsync/README-Rsync_Setup.md index 357bcc5..64e7d23 100644 --- a/Rsync/README-Rsync_Setup.md +++ b/Rsync/README-Rsync_Setup.md @@ -263,20 +263,22 @@ emby-failover — frequent dirty sync (every 30-60min): Fast, small dataset, high bandwidth This is also what gets written back during failover handback -emby — nightly clean sync (via nightly_sync.sh at 2:30am): +emby — weekly clean sync (via nightly_critical_full_sync.sh Sunday 2:30am): Emby stopped on both sides — WAL checkpointed on shutdown Full mirror: metadata, plugins, config all included Minimal excludes: logs, transcodes, cache, crash files only - Complete faithful state pushed once per night + Complete faithful state pushed once per week + Cache stays warm on HOST2 all week — only reset on Sunday + emby-failover handles the critical state between weekly syncs ``` Usage with profile override: ```bash # Dirty sync — Emby stays running -bash rsync.sh /mnt/user/appdata-Failover/Emby --profile=emby-failover +bash rsync.sh /mnt/user/Media_Server/Emby --profile=emby-failover -# Clean sync — called by nightly_sync.sh, Emby stopped via profile -bash rsync.sh /mnt/user/appdata-Failover/Emby +# Clean sync — called by nightly_critical_full_sync.sh, Emby stopped via profile +bash rsync.sh /mnt/user/Media_Server/Emby ``` --- @@ -303,8 +305,8 @@ Set the schedule to match your desired frequency: | Profile | Schedule | Notes | |---|---|---| | `emby-failover` | Every 30-60 min | Dirty sync — Emby running, critical data only | -| `emby` | via `nightly_sync.sh` | Clean sync — Emby stopped, full mirror | -| `Critical-Data` | via `nightly_sync.sh` | Auth stack — clean nightly sync | +| `emby` | Weekly Sunday via `nightly_critical_full_sync.sh` | Clean sync — Emby stopped, full mirror, cache stays warm all week | +| `Critical-Data` | Weekly Sunday via `nightly_critical_full_sync.sh` | Auth stack — clean weekly sync | | `Important-Data` | Every 6-12 hours | NextCloud file changes | | `Arrs_Stack` | Every 12-24 hours | Arr databases | | `Gmer4Lfe` | Daily or weekly | Personal appdata, rarely changes | diff --git a/user_script_plug-in.sh b/user_script_plug-in.sh index 61c96ef..c989fa5 100644 --- a/user_script_plug-in.sh +++ b/user_script_plug-in.sh @@ -172,7 +172,10 @@ #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/appdata-Failover/Arrs_Stack #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/appdata-Failover/Critical-Data #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/appdata-Failover/Important-Data -#/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/appdata-Failover/Emby --profile=emby-failover +#/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/Media_Server/Emby --profile=emby-failover +# ^^ schedule every 30-60min — dirty sync, Emby running, critical data only +#/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/Media_Server/Emby +# ^^ do NOT schedule — called by nightly_critical_full_sync.sh weekly Sunday 2:30am only #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/appdata-Failover/Gmer4Lfe # # ━━━ Rsync — Individual Media Shares (ad hoc) ━━━ @@ -288,7 +291,7 @@ # # ━━━ Frequent (cron) ━━━ # */3 * * * * transcode_management.sh (cleanup + manager every 3min) -# */30 * * * * rsync.sh /mnt/user/appdata-Failover/Emby (emby-failover dirty sync) +# */30 * * * * rsync.sh /mnt/user/Media_Server/Emby (emby-failover dirty sync) # --profile=emby-failover # */10 * * * * webgui_restart.sh # */15 * * * * docker_watchdog.sh @@ -297,7 +300,7 @@ # ━━━ Daily ━━━ # 0 1 * * * daily_sync.sh (media shares both directions) # 0 2 * * * media_management.sh (permissions + cleaners + arrs) -# 30 2 * * * nightly_critical_full_sync.sh (clean Emby + auth stack sync) +# 30 2 * * 0 nightly_critical_full_sync.sh (clean Emby + auth stack sync) # 0 3 * * * docker_daily_restart.sh # 0 8 * * * weekly_health_digest.sh (profile controls if it sends) # @@ -310,6 +313,7 @@ # emby-failover — every 30-60min via frequent cron above # # ━━━ Weekly — Sunday morning block ━━━ +# 30 2 * * 0 nightly_critical_full_sync.sh (clean Emby + auth stack — cache resets weekly) # 0 3 * * 0 docker_weekly_restart.sh # 0 5 * * 0 clear_logs.sh # 0 6 * * 0 zfs_memory_snapshot.sh