Run the download orphan cleaner daily — a weekly batch of newly-eligible orphans can exceed the delete cap, which aborts the whole pass and rolls the backlog into an even larger next run
This commit is contained in:
@@ -59,7 +59,7 @@
|
|||||||
# USAGE
|
# USAGE
|
||||||
# ==============================================================================================
|
# ==============================================================================================
|
||||||
#
|
#
|
||||||
# arr_download_orphan_cleaner.sh — weekly orchestrator entry
|
# arr_download_orphan_cleaner.sh — daily orchestrator entry
|
||||||
# arr_download_orphan_cleaner.sh --dry-run — classify and report only
|
# arr_download_orphan_cleaner.sh --dry-run — classify and report only
|
||||||
# arr_download_orphan_cleaner.sh --status — show config and exit
|
# arr_download_orphan_cleaner.sh --status — show config and exit
|
||||||
# arr_download_orphan_cleaner.sh --i-know-what-im-doing — bypass MAX_DELETE_GB cap
|
# arr_download_orphan_cleaner.sh --i-know-what-im-doing — bypass MAX_DELETE_GB cap
|
||||||
@@ -293,7 +293,9 @@ echo "$ICON_TRASH Deleted: $TOTAL_DELETED ($((TOTAL_DELETED_MB / 1024))G
|
|||||||
echo "$ICON_RUN Import scans: $TOTAL_SCANS"
|
echo "$ICON_RUN Import scans: $TOTAL_SCANS"
|
||||||
echo "$ICON_WARN Held: $TOTAL_HELD"
|
echo "$ICON_WARN Held: $TOTAL_HELD"
|
||||||
|
|
||||||
if [[ "$DRY_RUN" != true ]] && (( TOTAL_DELETED > 0 || TOTAL_HELD > 0 )); then
|
# Held alone never notifies — there is always something awaiting review, and on a daily
|
||||||
|
# schedule that would be a notification every morning saying nothing happened.
|
||||||
|
if [[ "$DRY_RUN" != true ]] && (( TOTAL_DELETED > 0 )); then
|
||||||
notify "Download orphan cleaner on $(hostname): deleted $TOTAL_DELETED orphans ($((TOTAL_DELETED_MB / 1024))G), triggered $TOTAL_SCANS import scans, $TOTAL_HELD held for review" \
|
notify "Download orphan cleaner on $(hostname): deleted $TOTAL_DELETED orphans ($((TOTAL_DELETED_MB / 1024))G), triggered $TOTAL_SCANS import scans, $TOTAL_HELD held for review" \
|
||||||
"Download Orphan Cleaner" "normal"
|
"Download Orphan Cleaner" "normal"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -398,6 +398,11 @@
|
|||||||
"Arrs_Stack/lidarr_cleanup.sh" # remove orphaned music files
|
"Arrs_Stack/lidarr_cleanup.sh" # remove orphaned music files
|
||||||
"Arrs_Stack/sonarr_cleanup.sh" # remove orphaned TV files
|
"Arrs_Stack/sonarr_cleanup.sh" # remove orphaned TV files
|
||||||
"Arrs_Stack/radarr_cleanup.sh" # remove orphaned movie files
|
"Arrs_Stack/radarr_cleanup.sh" # remove orphaned movie files
|
||||||
|
# Daily, not weekly — DOWNLOAD_ORPHAN_AGE gates each folder on its own mtime, so
|
||||||
|
# frequency costs nothing in safety, but a weekly run clears a whole week of
|
||||||
|
# newly-eligible orphans at once and can exceed DOWNLOAD_ORPHAN_MAX_DELETE_GB, which
|
||||||
|
# aborts the pass entirely and rolls the backlog into an even larger next run.
|
||||||
|
"Arrs_Stack/arr_download_orphan_cleaner.sh" # sweep orphaned completed downloads out of the SAB Completed folders — deletes junk + already-imported leftovers, triggers import scans for genuinely-missing content
|
||||||
# Runs after cleanup, not before — frees disk space from orphans/junk first, so the
|
# Runs after cleanup, not before — frees disk space from orphans/junk first, so the
|
||||||
# searches triggered below (for relocated hasFile=false/episodeFileCount=0 entries)
|
# searches triggered below (for relocated hasFile=false/episodeFileCount=0 entries)
|
||||||
# have headroom for the new grabs they cause, rather than contending with clutter
|
# have headroom for the new grabs they cause, rather than contending with clutter
|
||||||
@@ -439,7 +444,6 @@
|
|||||||
"unRAID_Essentials/clear_logs.sh" # purge aged logs — Sunday only, low priority
|
"unRAID_Essentials/clear_logs.sh" # purge aged logs — Sunday only, low priority
|
||||||
"Arrs_Stack/arr_full_rescan.sh" # full disk↔DB reconciliation for Lidarr/Sonarr/Radarr — keeps tracked stats honest, runs before discovery so it works off fresh data
|
"Arrs_Stack/arr_full_rescan.sh" # full disk↔DB reconciliation for Lidarr/Sonarr/Radarr — keeps tracked stats honest, runs before discovery so it works off fresh data
|
||||||
"Arrs_Stack/arr_corruption_scan.sh --remediate" # ffprobe-based corruption sweep of Sonarr's tracked files — deletes+re-searches only after CORRUPTION_SCAN_STRIKE_LIMIT consecutive hits on the same file
|
"Arrs_Stack/arr_corruption_scan.sh --remediate" # ffprobe-based corruption sweep of Sonarr's tracked files — deletes+re-searches only after CORRUPTION_SCAN_STRIKE_LIMIT consecutive hits on the same file
|
||||||
"Arrs_Stack/arr_download_orphan_cleaner.sh" # sweep orphaned completed downloads out of the SAB Completed folders — deletes junk + already-imported leftovers, triggers import scans for genuinely-missing content
|
|
||||||
"Arrs_Stack/playback_aware_lidarr_discovery.sh" # behavior-driven music discovery using weekly Emby playback history
|
"Arrs_Stack/playback_aware_lidarr_discovery.sh" # behavior-driven music discovery using weekly Emby playback history
|
||||||
"Arrs_Stack/playback_aware_radarr_discovery.sh" # behavior-driven movie discovery using TMDB recommendations
|
"Arrs_Stack/playback_aware_radarr_discovery.sh" # behavior-driven movie discovery using TMDB recommendations
|
||||||
"Arrs_Stack/playback_aware_sonarr_discovery.sh" # behavior-driven TV discovery using TMDB recommendations
|
"Arrs_Stack/playback_aware_sonarr_discovery.sh" # behavior-driven TV discovery using TMDB recommendations
|
||||||
|
|||||||
Reference in New Issue
Block a user