From 7496c49bf52ba8d689f671b4c66726f5f7ff173a Mon Sep 17 00:00:00 2001 From: FailedProxy Date: Wed, 29 Apr 2026 20:40:08 -0400 Subject: [PATCH] updated master conf vars --- Master.conf | 8 +- safe_master.conf | 10 +- user_script_plug-in.sh | 294 ++++++++++++++++++++++------------------- 3 files changed, 169 insertions(+), 143 deletions(-) diff --git a/Master.conf b/Master.conf index b96acaf..105701c 100644 --- a/Master.conf +++ b/Master.conf @@ -671,19 +671,19 @@ # Clears stuck searches, dead transfers, purges expired failed imports. # SLSKD_FAILED_IMPORTS_DIR: where Soularr moves albums Lidarr rejected. HOST1_SLSKD_URL="http://localhost:8980" - HOST1_SLSKD_API_KEY="your-slskd-api-key" + HOST1_SLSKD_API_KEY="4bF9kL2mNpQrT7vWxYz1A3dEgHjKoRsU" HOST1_SLSKD_FAILED_IMPORTS_DIR="/mnt/user/Temp_Storage/Slskd/completed/failed_imports" # ── SABnzbd ── HOST1_SABNZBD_URL="http://localhost:8180" - HOST1_SABNZBD_API_KEY="your-sabnzbd-api-key" + HOST1_SABNZBD_API_KEY="8bfefe41d83b4d50883e32859b55ca9a" # ── qBittorrent ── # deleteFiles=false — removes torrent from qBit but leaves files on disk. # Radarr/Sonarr manage actual files independently. HOST1_QBIT_URL="http://localhost:8080" - HOST1_QBIT_USERNAME="admin" - HOST1_QBIT_PASSWORD="your-qbit-password" + HOST1_QBIT_USERNAME="root" + HOST1_QBIT_PASSWORD="Stay0utD!ck" QBIT_FAILSAFE_MIN_DAYS=180 QBIT_FAILSAFE_MIN_RATIO=0 # 0 = age only, no ratio requirement diff --git a/safe_master.conf b/safe_master.conf index e6c9822..97eafaa 100644 --- a/safe_master.conf +++ b/safe_master.conf @@ -1507,4 +1507,12 @@ ZFS_REPORT_IGNORE_POOLS=( # ============================================================================================== # ──────────────────────── End Of User Variables ─────────────────────────────────────────────── -# ============================================================================================== \ No newline at end of file +# ============================================================================================== + + + + + + + +important_sync_maintenance.sh should be a new orch and follow the same structure in master as our other orchs. it should trigger the important rsync and trigger, arrs_failed_stalled. any thing else it should trigger \ No newline at end of file diff --git a/user_script_plug-in.sh b/user_script_plug-in.sh index 37e39a4..a41407e 100644 --- a/user_script_plug-in.sh +++ b/user_script_plug-in.sh @@ -22,24 +22,21 @@ # v1.6 — lidarr_cleanup.sh, sonarr_cleanup.sh, radarr_cleanup.sh added # v1.7 — cert_monitor.sh added # v1.8 — Monitors/ folder added with all monitoring scripts -# cert_monitor.sh moved from unRAID_Essentials to Monitors/ -# backup_verify.sh, smart_health.sh, bandwidth_monitor.sh added -# weekly_health_digest.sh, emby_session_report.sh added -# ZFS memory snapshot moved to Monitors/ — informational only -# Directory tree updated to reflect full ecosystem # v1.9 — transcode_management.sh added to Orchestrators/ # v2.0 — Major restructure: array_start.sh single entry point, daily/weekly orchestrators, # sunday_morning_coffee_report.sh, continuous_scripts_status.sh, # downloaders_reset.sh, docker_network_connect ensure+connect combined, # inotify_tuning.sh, arr path translation, version checking, nuclear mode flags -# replaces separate transcode_manager and transcode_cleanup cron entries -# Tools/ folder expanded with all utility scripts -# Docker watchdog — two-tier monitoring, startup grace, dependency ordering -# Failover — tiered failover, DDNS management, handback sequence -# Emby Docker mount fix — bind-propagation=shared required in Extra Parameters -# transcode_cleanup.sh — transcoding-temp protected from directory deletion -# ramdisk_setup.sh — creates transcoding-temp on ramdisk at array start -# RAMDISK_SIZE bumped to 10G, thresholds updated +# v2.1 — critical_sync_maintenance.sh added, Partnership/ folder added, +# DAILY_MAINTENANCE_SCRIPTS consolidates all daily jobs, +# WEEKLY_SYNC_SHARES renamed from WEEKLY_SYNC_JOBS, +# CRITICAL_MAINTENANCE_SCRIPTS + CRITICAL_SYNC_SHARES added, +# downloaders_reset moved to CRITICAL_MAINTENANCE_SCRIPTS, +# system_tuning_monitor.sh added to Monitors/, +# rsync_stop.sh auto-detects orchestrators via /proc children, +# check_remote_disks() auto-detects XFS/ZFS from disks.ini, +# temp check reads thresholds from dynamix.cfg, +# WEEKLY_SYNC_UPDATES renamed from CRITICAL_SYNC_UPDATES # ============================================================================================== # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ @@ -53,6 +50,10 @@ # ├── user_script_plug-in.sh # This file — copy into User Scripts plugin # ├── git_pull_execute.sh # Pulls latest scripts from Gitea repo # │ +# ├── Partnership/ +# │ ├── partnership_manage.sh # Lifecycle manager — onboard/offboard/transfer/check +# │ └── README-Partnership.md +# │ # ├── Failover/ # │ ├── failover.sh # Mutual container failover — runs continuously # │ ├── failover_test.sh # Controlled failover simulation — run manually @@ -72,24 +73,24 @@ # │ # ├── Orchestrators/ # │ ├── 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 +# │ ├── daily_sync_maintenance.sh # Daily — git pull, media sync, maintenance jobs, docker restart +# │ ├── weekly_sync_maintenance.sh # Weekly — Emby + auth sync, updates, weekly restart +# │ ├── critical_sync_maintenance.sh # Every 15min — downloaders reset, auth sync, partnership check +# │ ├── transcode_management.sh # Every 3min — cleanup then manager in correct order +# │ ├── sunday_morning_coffee_report.sh # Sunday 7am — full weekly system health report # │ └── README-Orchestrators.md # │ # ├── Rsync/ # │ ├── rsync.sh # Core rsync script — called per share or profile -# │ └── README-Rsync_Setup.md # Rsync-specific setup guide +# │ ├── rsync_stop.sh # Stops rsync + orchestrators — auto-detects via /proc +# │ └── README-Rsync_Setup.md # │ # ├── Docker_Essentials/ # │ ├── docker_watchdog.sh # Two-tier container health monitor — self-healing # │ ├── docker_daily_restart.sh # Restarts configured containers daily # │ ├── docker_weekly_restart.sh # Restarts configured containers weekly # │ ├── docker_network_connect.sh # Ensures custom networks exist + connects containers -# │ ├── downloaders_reset.sh # Daily reset for slskd, SABnzbd, qBittorrent +# │ ├── downloaders_reset.sh # Every 15min reset for slskd, SABnzbd, qBittorrent # │ └── README-Docker_Essentials.md # │ # ├── Media/ @@ -98,11 +99,12 @@ # │ ├── lidarr_cleanup.sh # Removes orphaned music files via Lidarr API # │ ├── sonarr_cleanup.sh # Removes orphaned TV files via Sonarr API # │ ├── radarr_cleanup.sh # Removes orphaned movie files via Radarr API +# │ ├── arrs_failed_stalled_recovery.sh # Auto blocklist + re-search failed/stalled downloads # │ └── README-Media.md # │ # ├── Transcodes/ -# │ ├── ramdisk_setup.sh # Creates ramdisk, symlink, and transcoding-temp -# │ ├── transcode_manager.sh # Monitors ramdisk usage, manages symlink +# │ ├── ramdisk_setup.sh # Creates ramdisk + symlink — runs at array start +# │ ├── transcode_manager.sh # Monitors ramdisk usage, manages symlink direction # │ ├── transcode_cleanup.sh # Removes old inactive transcode files # │ └── README-Transcoding.md # │ @@ -119,10 +121,9 @@ # └── unRAID_Essentials/ # ├── clear_logs.sh # Clears unRAID system and Docker log files # ├── docker_syslog_filter.sh # Filters Docker veth noise from syslog -# ├── inotify_tuning.sh # Bumps inotify limits — prevents container file event exhaustion +# ├── inotify_tuning.sh # Bumps inotify limits — prevents file event exhaustion # ├── mover_stop.sh # Safely stops the unRAID mover # ├── php_fpm_max_children.sh # Sets PHP-FPM max children value -# ├── rsync_stop.sh # Stops all rsync processes on both servers # ├── server_reboot.sh # Graceful server reboot with user warning # ├── system_watchdog.sh # System health monitor — last line of defense # ├── user_scripts_stop.sh # Stops running User Scripts plugin jobs @@ -147,20 +148,65 @@ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━ 🚀 Script Commands — Uncomment the one you want to run ━━━ # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +# ━━━ Orchestrators ━━━ +# Orchestrators are the main runtime engines — they handle everything within their domain +# in the correct order automatically. Individual scripts below can still be run manually. # +# array_start.sh — At Startup of Array — single entry, launches everything +# Configurable via ARRAY_START_SCRIPTS in Master.conf +# +# daily_sync_maintenance.sh — 0 1 * * * (1am daily) +# media share sync → DAILY_MAINTENANCE_SCRIPTS jobs +# git pull, permissions, cleaners, arr cleanup, docker restart +# +# weekly_sync_maintenance.sh — 30 2 * * 0 (Sunday 2:30am) +# stop containers → updates → WEEKLY_SYNC_SHARES → +# restart → WEEKLY_MAINTENANCE_SCRIPTS +# +# critical_sync_maintenance.sh — */15 * * * * (every 15 minutes) +# CRITICAL_MAINTENANCE_SCRIPTS → CRITICAL_SYNC_SHARES → +# partnership --check +# downloaders reset, auth stack sync, Emby dirty sync +# +# transcode_management.sh — */3 * * * * (every 3 minutes) +# transcode cleanup → transcode manager (correct order) +# +# sunday_morning_coffee_report.sh — 0 7 * * 0 (Sunday 7am) +# full weekly system health report — ready when you wake up ☕ +# +# arrs_failed_stalled_recovery.sh — 0 */6 * * * (every 6 hours) +# blocklist + re-search failed imports and stalled downloads +# +# system_tuning_monitor.sh — 0 */6 * * * (every 6 hours) +# snapshot inotify + php-fpm — feeds sunday coffee report +# +#/mnt/user/appdata/unraid_scripts/Orchestrators/array_start.sh +#/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/critical_sync_maintenance.sh +#/mnt/user/appdata/unraid_scripts/Orchestrators/transcode_management.sh +#/mnt/user/appdata/unraid_scripts/Orchestrators/sunday_morning_coffee_report.sh +#/mnt/user/appdata/unraid_scripts/Media/arrs_failed_stalled_recovery.sh +#/mnt/user/appdata/unraid_scripts/Monitors/system_tuning_monitor.sh + +# ━━━ Partnership ━━━ +#/mnt/user/appdata/unraid_scripts/Partnership/partnership_manage.sh --status +#/mnt/user/appdata/unraid_scripts/Partnership/partnership_manage.sh --onboard --dry-run +#/mnt/user/appdata/unraid_scripts/Partnership/partnership_manage.sh --onboard +#/mnt/user/appdata/unraid_scripts/Partnership/partnership_manage.sh --offboard --dry-run +#/mnt/user/appdata/unraid_scripts/Partnership/partnership_manage.sh --offboard +#/mnt/user/appdata/unraid_scripts/Partnership/partnership_manage.sh --transfer --dry-run +#/mnt/user/appdata/unraid_scripts/Partnership/partnership_manage.sh --transfer --confirm=i-understand-this-transfers-ownership + # ━━━ Failover ━━━ -# Runs continuously as background task — set schedule to "At Startup of Array (Background)". -# Both servers must have this running for mutual failover to work. +# Runs continuously — launched by array_start.sh via ARRAY_START_SCRIPTS. +# Run manually only for testing or if array_start.sh is not in use. # #/mnt/user/appdata/unraid_scripts/Failover/failover.sh -# -# ━━━ Failover Test ━━━ -# Run manually during a maintenance window — starts and stops real containers. -# Always --dry-run first to walk through phases without making changes. -# #/mnt/user/appdata/unraid_scripts/Failover/failover_test.sh --dry-run #/mnt/user/appdata/unraid_scripts/Failover/failover_test.sh -# + # ━━━ Monitors ━━━ #/mnt/user/appdata/unraid_scripts/Monitors/continuous_scripts_status.sh # ^^ run manually anytime — live status of system_watchdog, docker_watchdog, failover @@ -173,57 +219,21 @@ #/mnt/user/appdata/unraid_scripts/Monitors/smart_health.sh #/mnt/user/appdata/unraid_scripts/Monitors/weekly_health_digest.sh #/mnt/user/appdata/unraid_scripts/Monitors/zfs_memory_snapshot.sh -# -# ━━━ Orchestrators ━━━ -# Orchestrators are the main scripts — they handle most if not all needed scripts -# in a specific order of operations. Each orchestrator owns a domain and runs -# everything within it automatically. All scripts below orchestrators can still -# be run separately for testing or manual maintenance. -# -# array_start.sh — At Startup of Array — single entry, launches everything -# ramdisk, syslog filter, php-fpm, network connect (one-shot) -# system_watchdog, docker_watchdog, failover (continuous loops) -# -# daily_sync_maintenance.sh — 0 1 * * * (1am daily) -# git pull → media share sync → permissions → cleaners → -# arr cleanup → docker daily restart -# -# weekly_sync_maintenance.sh — 30 2 * * 0 (Sunday 2:30am) -# stop containers → pull updates → sync Emby + Critical-Data → -# start containers → docker weekly restart -# -# transcode_management.sh — */3 * * * * (every 3 minutes) -# transcode cleanup → transcode manager (correct order) -# -# sunday_morning_coffee_report.sh — 0 7 * * 0 (Sunday 7am) -# full weekly system health digest — ready when you wake up ☕ -# system, array, failover, transcodes, media activity, rsync, -# watchdog, security, Emby stats, health summary -# -# arrs_failed_stalled_recovery.sh — 0 */6 * * * (every 6 hours) -# blocklist + re-search failed imports and stalled downloads -# across Sonarr, Radarr, and Lidarr automatically -# -# system_tuning_monitor.sh — 0 */6 * * * (every 6 hours) -# snapshot inotify + php-fpm usage — feeds sunday coffee report -# weekly peak, average, low, warning count -# -#/mnt/user/appdata/unraid_scripts/Orchestrators/array_start.sh -#/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 -#/mnt/user/appdata/unraid_scripts/Orchestrators/sunday_morning_coffee_report.sh -#/mnt/user/appdata/unraid_scripts/Media/arrs_failed_stalled_recovery.sh -#/mnt/user/appdata/unraid_scripts/Monitors/system_tuning_monitor.sh -# + # ━━━ Rsync — Appdata Profiles ━━━ #/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/Media_Server/Emby --profile=emby-failover -#/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/Media_Server/Emby #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/appdata-Failover/Gmer4Lfe -# +#/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/Media_Server/Emby --profile=emby-failover +# ^^ dirty sync — Emby stays running — called by critical_sync_maintenance.sh every 15min +#/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/Media_Server/Emby +# ^^ do NOT schedule — called by weekly_sync_maintenance.sh Sunday 2:30am only +#/mnt/user/appdata/unraid_scripts/Rsync/rsync_stop.sh +# ^^ smart stop — auto-detects orchestrators via /proc, rsync-only if orchestrator running +#/mnt/user/appdata/unraid_scripts/Rsync/rsync_stop.sh --full-stop +# ^^ nuclear — kills orchestrator first then rsync + # ━━━ Rsync — Individual Media Shares (ad hoc) ━━━ #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/Movies #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/Tv_Shows @@ -240,20 +250,23 @@ #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/Nextcloud #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/Sports #/mnt/user/appdata/unraid_scripts/Rsync/rsync.sh /mnt/user/stand-up_comedy -# + # ━━━ Docker Essentials ━━━ #/mnt/user/appdata/unraid_scripts/Docker_Essentials/docker_watchdog.sh +# ^^ runs continuously — launched by array_start.sh #/mnt/user/appdata/unraid_scripts/Docker_Essentials/docker_daily_restart.sh +# ^^ called by daily_sync_maintenance.sh via DAILY_MAINTENANCE_SCRIPTS #/mnt/user/appdata/unraid_scripts/Docker_Essentials/docker_weekly_restart.sh +# ^^ called by weekly_sync_maintenance.sh via WEEKLY_MAINTENANCE_SCRIPTS #/mnt/user/appdata/unraid_scripts/Docker_Essentials/docker_network_connect.sh -# ^^ ensures custom networks exist + connects containers — run at array start -#/mnt/user/appdata/unraid_scripts/Docker_Essentials/downloaders_reset.sh --dry-run --log +# ^^ ensures custom networks exist + connects containers — called by array_start.sh +#/mnt/user/appdata/unraid_scripts/Docker_Essentials/downloaders_reset.sh --dry-run #/mnt/user/appdata/unraid_scripts/Docker_Essentials/downloaders_reset.sh -# ^^ called by daily_sync_maintenance.sh via MEDIA_MANAGEMENT_JOBS — run manually for testing -# +# ^^ called by critical_sync_maintenance.sh every 15min via CRITICAL_MAINTENANCE_SCRIPTS + # ━━━ Media ━━━ -# 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. +# All media jobs run via DAILY_MAINTENANCE_SCRIPTS — scripts below 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 @@ -262,18 +275,17 @@ #/mnt/user/appdata/unraid_scripts/Media/media_cleaner.sh media #/mnt/user/appdata/unraid_scripts/Media/lidarr_cleanup.sh --dry-run --log #/mnt/user/appdata/unraid_scripts/Media/lidarr_cleanup.sh +#/mnt/user/appdata/unraid_scripts/Media/lidarr_cleanup.sh --i-know-what-im-doing --skip-strike-list #/mnt/user/appdata/unraid_scripts/Media/sonarr_cleanup.sh --dry-run --log #/mnt/user/appdata/unraid_scripts/Media/sonarr_cleanup.sh #/mnt/user/appdata/unraid_scripts/Media/radarr_cleanup.sh --dry-run --log #/mnt/user/appdata/unraid_scripts/Media/radarr_cleanup.sh #/mnt/user/appdata/unraid_scripts/Media/arrs_failed_stalled_recovery.sh --dry-run #/mnt/user/appdata/unraid_scripts/Media/arrs_failed_stalled_recovery.sh -# ^^ schedule: 0 5 * * * (5am daily) — always dry-run first -# + # ━━━ Transcodes ━━━ # transcode_management.sh runs cleanup then manager — schedule that, not the individuals. -# ramdisk_setup.sh runs once at array start. -# transcode_manager.sh and transcode_cleanup.sh available for individual manual runs. +# ramdisk_setup.sh runs once at array start via ARRAY_START_SCRIPTS. # #/mnt/user/appdata/unraid_scripts/Transcodes/ramdisk_setup.sh #/mnt/user/appdata/unraid_scripts/Orchestrators/transcode_management.sh @@ -281,7 +293,7 @@ #/mnt/user/appdata/unraid_scripts/Transcodes/transcode_manager.sh #/mnt/user/appdata/unraid_scripts/Transcodes/transcode_cleanup.sh --dry-run #/mnt/user/appdata/unraid_scripts/Transcodes/transcode_cleanup.sh -# + # ━━━ Tools ━━━ #/mnt/user/appdata/unraid_scripts/Tools/bulk_permissions_repair.sh /mnt/user/ShareName #/mnt/user/appdata/unraid_scripts/Tools/container_data_export.sh ContainerName /path/to/appdata /path/to/output @@ -293,21 +305,20 @@ #/mnt/user/appdata/unraid_scripts/Tools/watchdog_skip_list_manager.sh --clear ContainerName #/mnt/user/appdata/unraid_scripts/Tools/watchdog_skip_list_manager.sh --clear-all #/mnt/user/appdata/unraid_scripts/Tools/zfs_pool_scrub.sh -# + # ━━━ unRAID Essentials ━━━ #/mnt/user/appdata/unraid_scripts/unRAID_Essentials/clear_logs.sh #/mnt/user/appdata/unraid_scripts/unRAID_Essentials/docker_syslog_filter.sh +#/mnt/user/appdata/unraid_scripts/unRAID_Essentials/inotify_tuning.sh #/mnt/user/appdata/unraid_scripts/unRAID_Essentials/mover_stop.sh #/mnt/user/appdata/unraid_scripts/unRAID_Essentials/php_fpm_max_children.sh -#/mnt/user/appdata/unraid_scripts/unRAID_Essentials/rsync_stop.sh #/mnt/user/appdata/unraid_scripts/unRAID_Essentials/server_reboot.sh #/mnt/user/appdata/unraid_scripts/unRAID_Essentials/system_watchdog.sh #/mnt/user/appdata/unraid_scripts/unRAID_Essentials/user_scripts_stop.sh #/mnt/user/appdata/unraid_scripts/unRAID_Essentials/webgui_restart.sh -# -# ━━━ Git repo (Gitea) ━━━ + +# ━━━ Git ━━━ #/mnt/user/appdata/unraid_scripts/git_pull_execute.sh -# # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━ ⚙️ Arguments ━━━ @@ -321,15 +332,20 @@ # KEY=VALUE Override any Master.conf variable for this run only # # ━━━ Special arguments ━━━ -# failover.sh --status — check current state without restarting loop -# failover.sh --dry-run --log — test logic without touching containers -# media_cleaner.sh anime --dry-run — profile required as first argument -# bandwidth_monitor.sh --report — generate weekly summary report -# lidarr/sonarr/radarr --dry-run --log — always test arr cleanup before running live -# transcode_management.sh --dry-run — passes through to both child scripts +# failover.sh --status — check current state without restarting loop +# failover.sh --dry-run --log — test logic without touching containers +# media_cleaner.sh anime --dry-run — profile required as first argument +# bandwidth_monitor.sh --report — generate weekly summary report +# lidarr/sonarr/radarr --dry-run --log — always test arr cleanup before running live +# lidarr/sonarr/radarr --i-know-what-im-doing --skip-strike-list — nuclear mode +# transcode_management.sh --dry-run — passes through to both child scripts # watchdog_skip_list_manager.sh --status — view skip list and restart history # watchdog_skip_list_manager.sh --clear Name — clear specific container -# failover_state_reset.sh --status — view current failover state file +# failover_state_reset.sh --status — view current failover state file +# rsync_stop.sh — smart stop, auto-detects what is running +# rsync_stop.sh --full-stop — nuclear, kills orchestrator first +# partnership_manage.sh --status — show current partnership state +# partnership_manage.sh --check — called automatically every 15min, do not run manually # # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ━━━ 📋 Recommended Schedules ━━━ @@ -339,46 +355,48 @@ # 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 — ensure custom networks exist + connect containers (one-shot) -# system_watchdog.sh — system health monitor (continuous) -# docker_watchdog.sh — container health monitor (continuous) -# failover.sh — mutual failover (continuous) +# Launched by array_start.sh (configured via ARRAY_START_SCRIPTS): +# 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) +# inotify_tuning.sh — bump inotify limits (one-shot) +# docker_network_connect.sh — ensure custom networks exist + connect (one-shot) +# system_watchdog.sh — system health monitor (continuous) +# docker_watchdog.sh — container health monitor (continuous) +# failover.sh — mutual failover (continuous) — enable when HOST2 ready # -# ━━━ Frequent (cron) ━━━ -# */3 * * * * transcode_management.sh (cleanup + manager every 3min) -# */30 * * * * rsync.sh /mnt/user/Media_Server/Emby (emby-failover dirty sync) -# --profile=emby-failover -# */6 * * * * arrs_failed_stalled_recovery.sh (blocklist + re-search) -# */15 * * * * system_watchdog.sh +# ━━━ Every 3 minutes ━━━ +# */3 * * * * transcode_management.sh (cleanup + manager — correct order) +# +# ━━━ Every 15 minutes ━━━ +# */15 * * * * critical_sync_maintenance.sh (downloaders reset + auth sync + partnership check) +# +# ━━━ Every 6 hours ━━━ +# 0 */6 * * * arrs_failed_stalled_recovery.sh (blocklist + re-search failed/stalled) +# 0 */6 * * * system_tuning_monitor.sh (inotify + php-fpm snapshot) # # ━━━ Daily ━━━ -# 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) +# 0 1 * * * daily_sync_maintenance.sh (git pull + media sync + maintenance + restart) +# 0 8 * * * weekly_health_digest.sh (profile controls if/when it sends) # -# ━━━ Rsync profiles — schedule individually ━━━ +# ━━━ Weekly ━━━ +# 30 2 * * 0 weekly_sync_maintenance.sh (Emby + auth sync + updates + weekly restart) +# 0 7 * * 0 sunday_morning_coffee_report.sh (full weekly health report — Sunday 7am) +# +# ━━━ Manual only ━━━ +# continuous_scripts_status.sh (live status of all watchdogs + failover) +# rsync_stop.sh (stop rsync — smart auto-detect) +# rsync_stop.sh --full-stop (stop everything including orchestrator) +# partnership_manage.sh --onboard (set up mirror relationship) +# partnership_manage.sh --offboard (clean separation — either server) +# partnership_manage.sh --transfer (flip ownership — owner only) +# +# ━━━ Rsync profiles — individual schedules ━━━ # Arrs_Stack — daily or every few days (arr databases change on every download) -# Critical-Data — handled by weekly_sync_maintenance.sh — no separate schedule needed +# Critical-Data — handled by critical_sync_maintenance.sh every 15min — no separate schedule # Important-Data — daily (NextCloud file changes) -# Gmer4Lfe — daily or weekly (personal appdata, rarely changes) -# 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 weekly_sync_maintenance.sh (clean sync + updates + docker weekly restart) -# 0 7 * * 0 sunday_morning_coffee_report.sh (weekly health digest — ready when you wake up) -# -# Individual monitor scripts still available for manual runs: -# clear_logs.sh, zfs_memory_snapshot.sh, smart_health.sh -# cert_monitor.sh, backup_verify.sh, emby_session_report.sh -# weekly_health_digest.sh, bandwidth_monitor.sh --report -# -# ━━━ Bandwidth monitor ━━━ -# bandwidth_monitor.sh --log-transfer called automatically by rsync.sh -# bandwidth_monitor.sh --report runs standalone for weekly summary +# Gmer4Lfe — daily or weekly (personal appdata) +# Emby — handled by weekly_sync_maintenance.sh Sunday 2:30am — no separate schedule +# emby-failover — handled by critical_sync_maintenance.sh every 15min — no separate schedule # # ============================================================================================== \ No newline at end of file