diff --git a/Docker_Essentials/docker_daily_restart.sh b/Docker_Essentials/docker_daily_restart.sh index 558274d..74d23e2 100755 --- a/Docker_Essentials/docker_daily_restart.sh +++ b/Docker_Essentials/docker_daily_restart.sh @@ -82,6 +82,11 @@ # CONTAINER_DELAY # Seconds to wait after restarting a dependency before starting its dependents # +# RESTART_VERIFY_WAIT +# Seconds to wait after docker restart before checking the container is running. +# Gives the process time to initialise before verify_running samples the state. +# (default: 3) +# # ============================================================================================== # RUNTIME MODES # ============================================================================================== @@ -266,7 +271,7 @@ for container in "${ORDERED_RESTART[@]}"; do RESTARTED+=("$container") else if retry_docker docker restart "$container"; then - # Verify container stayed running after restart + [[ "${RESTART_VERIFY_WAIT:-3}" -gt 0 ]] && sleep "${RESTART_VERIFY_WAIT:-3}" if verify_running "$container"; then log "$ICON_STARTED $container restarted and running in $(format_duration $(( $(date +%s) - c_start ))) ✅" RESTARTED+=("$container") diff --git a/Docker_Essentials/downloaders_reset.sh b/Docker_Essentials/downloaders_reset.sh index 8146eaf..2ef5415 100755 --- a/Docker_Essentials/downloaders_reset.sh +++ b/Docker_Essentials/downloaders_reset.sh @@ -77,7 +77,7 @@ # # Lock Acquisition # acquire_lock "wait" — waits for previous run to finish since this runs every -# 15 minutes and prior execution may still be completing. +# 30 minutes and prior execution may still be completing. # # ============================================================================================== # CONFIGURATION diff --git a/Media/lidarr_cleanup.sh b/Media/lidarr_cleanup.sh index b378f78..2d19e9c 100755 --- a/Media/lidarr_cleanup.sh +++ b/Media/lidarr_cleanup.sh @@ -8,7 +8,7 @@ # Delete orphaned music files not tracked by Lidarr. Queries the API for all # tracked file paths, walks the library on disk, and removes anything untracked # that is old enough to be past the import window. Triggers an Emby library -# clean after each deletion run so ghost entries disappear immediately. +# clean after runs where files were deleted so ghost entries disappear immediately. # # ============================================================================================== # OPERATIONAL MODEL diff --git a/Monitors/cert_monitor.sh b/Monitors/cert_monitor.sh index 998c8e5..de1e71d 100755 --- a/Monitors/cert_monitor.sh +++ b/Monitors/cert_monitor.sh @@ -83,7 +83,8 @@ # Show domain list, warning thresholds, and timeout. Then exit. # # cert_monitor.sh --log -# Verbose per-domain output during the run. +# Include healthy domains in per-domain output with expiry date and days remaining. +# Problems (WARN/CRIT/FAIL) always show with their details regardless of this flag. # # ============================================================================================== @@ -259,13 +260,14 @@ echo " $ICON_SUCCESS Healthy: ${#HEALTHY[@]}" [[ ${#FAILED[@]} -gt 0 ]] && echo "$ICON_ERROR Failed: ${#FAILED[@]} — unreachable" echo "" -# Per-domain results — only show problems, healthy ones stay in log() +# Per-domain results — problems always shown with days remaining; healthy only with --log for domain in "${CERT_MONITOR_DOMAINS[@]}"; do [[ -z "$domain" ]] && continue + local _days="${DOMAIN_DAYS[$domain]:-?}" _exp="${DOMAIN_EXPIRY[$domain]:-unknown}" case "${DOMAIN_STATUS[$domain]:-UNKN}" in - OK) log " $ICON_SUCCESS $domain — healthy" ;; - WARN) warn " $ICON_WARN $domain — warning" ;; - CRIT) echo " $ICON_ERROR $domain — CRITICAL" ;; + OK) log " $ICON_SUCCESS $domain — healthy (${_days}d, expires ${_exp})" ;; + WARN) warn " $ICON_WARN $domain — warning (${_days}d, expires ${_exp})" ;; + CRIT) echo " $ICON_ERROR $domain — CRITICAL (${_days}d, expires ${_exp})" ;; FAIL) echo " $ICON_ERROR $domain — unreachable" ;; esac done diff --git a/Monitors/zfs_memory_snapshot.sh b/Monitors/zfs_memory_snapshot.sh index cee374d..63d4af7 100755 --- a/Monitors/zfs_memory_snapshot.sh +++ b/Monitors/zfs_memory_snapshot.sh @@ -10,8 +10,9 @@ # only — system_watchdog.sh handles threshold-based intervention. # # Combines ZFS pool status, ARC statistics, Docker memory usage, and kernel -# memory pressure into a single snapshot. Output goes to both console (for User -# Scripts output log) and ZFS_REPORT_LOG for week-over-week comparison. +# memory pressure into a single snapshot. In normal mode output goes to both +# console (for User Scripts output log) and ZFS_REPORT_LOG for week-over-week +# comparison. In --dry-run mode, console only — nothing written to the log. # # ============================================================================================== # OPERATIONAL MODEL diff --git a/Partnership/ssh_setup.sh b/Partnership/ssh_setup.sh index 3bbefe9..e36c0a9 100755 --- a/Partnership/ssh_setup.sh +++ b/Partnership/ssh_setup.sh @@ -34,6 +34,7 @@ # Partnership/ssh_setup.sh --force — regenerate + re-copy # Partnership/ssh_setup.sh --validate — health check + strike tracking # Partnership/ssh_setup.sh --status — show key and connectivity state +# Partnership/ssh_setup.sh --local-only — generate key locally, skip remote copy # Any mode supports --dry-run and --log # ============================================================================================== diff --git a/Tools/ramdisk_stop.sh b/Tools/ramdisk_stop.sh index 474bcb3..6c2a829 100755 --- a/Tools/ramdisk_stop.sh +++ b/Tools/ramdisk_stop.sh @@ -61,6 +61,7 @@ # master.conf # TRANSCODE_LINK Symlink Emby uses. Must match Emby's transcode path setting. # RAMDISK_PATH tmpfs mount point. +# TRANSCODE_STATE_FILE Override state file path (default: ${STATE_DIR}/transcode_state.db). # # ============================================================================================== # STATE FILES diff --git a/Tools/smart_long_test.sh b/Tools/smart_long_test.sh index 8520f17..ea5dbcc 100755 --- a/Tools/smart_long_test.sh +++ b/Tools/smart_long_test.sh @@ -61,10 +61,6 @@ # # master.conf # -# SMART_TEMP_WARN / SMART_TEMP_CRIT -# Fallback thresholds used for post-test temperature reporting if -# dynamix.cfg is not found. -# # ============================================================================================== # RUNTIME MODES # ============================================================================================== diff --git a/Transcodes/ramdisk_setup.sh b/Transcodes/ramdisk_setup.sh index 9bf2b3c..7d66e50 100755 --- a/Transcodes/ramdisk_setup.sh +++ b/Transcodes/ramdisk_setup.sh @@ -78,12 +78,16 @@ # TRANSCODE_CHMOD / TRANSCODE_OWNER # Permissions applied to both ramdisk and SSD directories. (default: 755 / nobody:users) # +# TRANSCODE_STATE_FILE +# Override state file path. (default: ${STATE_DIR}/transcode_state.db) +# # ============================================================================================== # STATE FILES # ============================================================================================== # -# /tmp/transcode_state.db — current symlink target + flip count tracking -# Lives in /tmp (ephemeral — resets on reboot correctly) +# TRANSCODE_STATE_FILE (default: ${STATE_DIR}/transcode_state.db) +# Current symlink target + flip count tracking. Lives in STATE_DIR +# (ephemeral on Unraid — resets on reboot correctly). # # ============================================================================================== # RUNTIME MODES