created loop for both watchdogs and consolidated orch lists

This commit is contained in:
2026-04-23 22:44:56 -04:00
parent 8f60e5dde4
commit a3f90ed175
11 changed files with 2530 additions and 1467 deletions
+37 -28
View File
@@ -65,10 +65,13 @@
# │ └── README-Monitors.md
# │
# ├── Orchestrators/
# │ ├── media_shares_sync.sh # Runs all daily media share syncs sequentially
# │ ├── critical_shares_maintenance.sh # Maintenance window — stop, update, sync, restart
# │ ├── media_management.sh # Runs permissions + cleaners + arr cleanup
# │ ├── transcode_management.sh # Runs cleanup then manager every 3min + daily stats
# │ ├── array_start.sh # Single entry point — launches all array-start scripts
# │ ├── daily_sync_maintenance.sh # Daily — git pull, media sync, media mgmt, docker restart
# │ ├── weekly_sync_maintenance.sh # Weekly — critical sync + updates, docker weekly restart
# │ ├── daily_sync_maintenance.sh # Media shares sync both directions
# │ ├── weekly_sync_maintenance.sh # Clean sync + container updates (Emby + auth stack)
# │ ├── media_management.sh # Permissions + cleaners + arr cleanup — run manually
# │ ├── transcode_management.sh # Cleanup then manager every 3min + daily stats
# │ └── README-Orchestrators.md
# │
# ├── Rsync/
@@ -160,13 +163,16 @@
#/mnt/user/appdata/unraid_scripts/Monitors/zfs_memory_snapshot.sh
#
# ━━━ Orchestrators ━━━
# Orchestrators run their child scripts in the correct order.
# Individual scripts below are still accessible for manual runs or testing.
# array_start.sh is the single User Scripts entry for array startup.
# All other orchestrators are scheduled via cron — not started at array start.
#
#/mnt/user/appdata/unraid_scripts/Orchestrators/media_shares_sync.sh
#/mnt/user/appdata/unraid_scripts/Orchestrators/critical_shares_maintenance.sh
#/mnt/user/appdata/unraid_scripts/Orchestrators/media_management.sh
#/mnt/user/appdata/unraid_scripts/Orchestrators/array_start.sh
# ^^ set to: At Startup of Array
#/mnt/user/appdata/unraid_scripts/Orchestrators/daily_sync_maintenance.sh
#/mnt/user/appdata/unraid_scripts/Orchestrators/weekly_sync_maintenance.sh
#/mnt/user/appdata/unraid_scripts/Orchestrators/transcode_management.sh
# ^^ media_management.sh is absorbed into daily_sync_maintenance.sh via MEDIA_MANAGEMENT_JOBS
# ^^ run manually: bash Orchestrators/media_management.sh --dry-run
#
# ━━━ Rsync — Appdata Profiles ━━━
#/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/appdata-Failover/Arrs_Stack
@@ -175,7 +181,7 @@
#/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 critical_shares_maintenance.sh Sunday 2:30am only
# ^^ do NOT schedule — called by weekly_sync_maintenance.sh Sunday 2:30am only
#/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/appdata-Failover/Gmer4Lfe
#
# ━━━ Rsync — Individual Media Shares (ad hoc) ━━━
@@ -202,8 +208,8 @@
#/mnt/user/appdata/unraid_scripts/Docker_Essentials/docker_network_connect.sh
#
# ━━━ Media ━━━
# media_management.sh runs all of these in order — individual entries for manual use.
# Always --dry-run --log first on arr cleanup scripts before running live.
# media_management.sh is absorbed into daily_sync_maintenance.sh via MEDIA_MANAGEMENT_JOBS.
# Scripts below available for manual runs only — always --dry-run first on arr cleanup scripts.
#
#/mnt/user/appdata/unraid_scripts/Media/media_shares_permissions.sh
#/mnt/user/appdata/unraid_scripts/Media/media_cleaner.sh anime --dry-run
@@ -286,37 +292,40 @@
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#
# ━━━ At Startup of Array ━━━
# failover.sh background task (continuous loop)
# ramdisk_setup.sh creates ramdisk before Emby starts
# docker_network_connect.sh — connect containers to extra networks
# docker_syslog_filter.sh — suppress veth noise before logs fill
# php_fpm_max_children.sh — WebGUI performance tuning
# array_start.sh — single entry point, launches everything below
# configure what runs in ARRAY_START_SCRIPTS in Master.conf
#
# Launched by array_start.sh:
# ramdisk_setup.sh — creates ramdisk before Emby starts (one-shot)
# docker_syslog_filter.sh — suppress veth noise before logs fill (one-shot)
# php_fpm_max_children.sh — WebGUI performance tuning (one-shot)
# docker_network_connect.sh — connect containers to extra networks (one-shot)
# system_watchdog.sh — system health monitor (continuous)
# docker_watchdog.sh — container health monitor (continuous)
# failover.sh — mutual failover (continuous)
#
# ━━━ Frequent (cron) ━━━
# */3 * * * * transcode_management.sh (cleanup + manager every 3min)
# */30 * * * * rsync.sh /mnt/user/Media_Server/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
# */6 * * * * arrs_failed_stalled_recovery.sh (blocklist + re-search)
# */15 * * * * system_watchdog.sh
#
# ━━━ Daily ━━━
# 0 1 * * * media_shares_sync.sh (media shares both directions)
# 0 2 * * * media_management.sh (permissions + cleaners + arrs)
# 0 3 * * * docker_daily_restart.sh
# 0 5 * * * arrs_failed_stalled_recovery.sh (blocklist + re-search failed imports + stalled)
# 0 8 * * * weekly_health_digest.sh (profile controls if it sends)
# 0 1 * * * daily_sync_maintenance.sh (git pull + media sync + media_management + docker restart)
# 0 5 * * * arrs_failed_stalled_recovery.sh (blocklist + re-search failed imports + stalled)
# 0 8 * * * weekly_health_digest.sh (profile controls if it sends)
#
# ━━━ Rsync profiles — schedule individually ━━━
# Arrs_Stack — daily or every few days (arr databases change on every download)
# Critical-Data — handled by critical_shares_maintenance.sh — no separate schedule needed
# Critical-Data — handled by weekly_sync_maintenance.sh — no separate schedule needed
# Important-Data — daily (NextCloud file changes)
# Gmer4Lfe — daily or weekly (personal appdata, rarely changes)
# Emby — handled by critical_shares_maintenance.sh — no separate schedule needed
# Emby — handled by weekly_sync_maintenance.sh — no separate schedule needed
# emby-failover — every 30-60min via frequent cron above
#
# ━━━ Weekly — Sunday morning block ━━━
# 30 2 * * 0 critical_shares_maintenance.sh (clean Emby + auth stack — cache resets weekly)
# 30 2 * * 0 weekly_sync_maintenance.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