Header/code audit fixes across all core scripts

Behavior fixes:
- docker_daily_restart.sh: implement RESTART_VERIFY_WAIT sleep before
  verify_running() — variable was logged as config but never applied
- cert_monitor.sh: --log now shows expiry date and days remaining for
  healthy domains in the per-domain summary; problems always show details

Header corrections:
- downloaders_reset.sh: fix frequency contradiction (15 min → 30 min)
- lidarr_cleanup.sh: Emby scan triggers on actual deletions, not every run
- ssh_setup.sh: document --local-only flag in USAGE section
- zfs_memory_snapshot.sh: clarify dry-run skips log write in PURPOSE
- ramdisk_stop.sh / ramdisk_setup.sh: document TRANSCODE_STATE_FILE var
- smart_long_test.sh: remove SMART_TEMP_WARN/CRIT — not used in code
This commit is contained in:
Gmer4Lfe
2026-06-14 01:40:35 -04:00
parent b4d6866f40
commit 181114aed5
9 changed files with 26 additions and 16 deletions
+6 -1
View File
@@ -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")
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+7 -5
View File
@@ -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
+3 -2
View File
@@ -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
+1
View File
@@ -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
# ==============================================================================================
+1
View File
@@ -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
-4
View File
@@ -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
# ==============================================================================================
+6 -2
View File
@@ -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