Server schedule storage inventory¶
Snapshot from November 10, 2026. This is the complete discovered host schedule list, with storage triage for every entry. It is not a claim that every application function was traced internally. Frequencies are local cron expressions; timer definitions and last-run service properties are saved in private evidence. See server-cron-space-audit-2026-11-10 for measured findings and the fix plan.
Angel cron entries¶
81 active entries; 76 have cron-run heartbeats. Status is the latest heartbeat at collection time, not proof of restored data. Five unwrapped entries are vpn-check, Tesla precool, feedback-age-notify, erp-output-clean and qbit-killswitch. Paused social lines remain comments and are not counted as active jobs. Pod-day's weekly cap remains zero.
| Job | Schedule | Latest heartbeat | Storage treatment |
|---|---|---|---|
| vpn-check | */5 * * * * |
not wrapped | Preserve responsiveness; bound logs/state |
| precious-sync | 20 2 * * * |
ok | Review backup/capacity findings in audit |
| precious-verify | 0 5 * * 0 |
ok | Review backup/capacity findings in audit |
| training-evening | 0 21 * * * |
ok | Preserve responsiveness; bound logs/state |
| training-prealarm | 45 3 * * * |
ok | Preserve responsiveness; bound logs/state |
| training-morning | 10 6 * * * |
ok | Preserve responsiveness; bound logs/state |
| history-backup | 50 2 * * * |
ok | Review backup/capacity findings in audit |
| history-weekly | 30 5 * * 0 |
ok | Review backup/capacity findings in audit |
| snapraid-age | 17 * * * * |
ok | Preserve responsiveness; bound logs/state |
| notes-nightly | 55 23 * * * |
ok | Preserve responsiveness; bound logs/state |
| notes-daily | 0 23 * * * |
ok | Preserve responsiveness; bound logs/state |
| tesla-precool | */5 * * * * |
not wrapped | Preserve responsiveness; bound logs/state |
| quote-drafts | */30 7-19 * * 1-5 |
ok | Preserve responsiveness; bound logs/state |
| content-buffer-fill | 7 * * * * |
ok | Preserve responsiveness; bound logs/state |
| content-sync | 40 2 * * * |
ok | Review backup/capacity findings in audit |
| list-sync | */15 * * * * |
ok | Preserve responsiveness; bound logs/state |
| erp-backup | 15 3 * * * |
ok | Review backup/capacity findings in audit |
| erp-verify | 15 6 * * 0 |
ok | Review backup/capacity findings in audit |
| part-refresh | 30 5 * * 1 |
ok | Preserve responsiveness; bound logs/state |
| assistant-test | 40 6 * * * |
ok | Preserve responsiveness; bound logs/state |
| sop-audit | 50 6 * * 1 |
fail | Preserve responsiveness; bound logs/state |
| reports-sync | 0 * * * * |
ok | Preserve responsiveness; bound logs/state |
| onboard-access-sync | 0 * * * * |
ok | Preserve responsiveness; bound logs/state |
| onboard-access-drift | 5 6 * * * |
ok | Preserve responsiveness; bound logs/state |
| feedback-age-notify | 10 7 * * 1 |
not wrapped | Preserve responsiveness; bound logs/state |
| quarterly-pack | 0 7 1 1,4,7,10 * |
ok | Preserve responsiveness; bound logs/state |
| engineering-deploy | 20 * * * * |
fail | Review backup/capacity findings in audit |
| erp-output-clean | * * * * * |
not wrapped | Preserve responsiveness; bound logs/state |
| content-daily-prepare | 37 * * * * |
ok | Preserve responsiveness; bound logs/state |
| content-daily-release | */5 7-19 * * * |
ok | Preserve responsiveness; bound logs/state |
| opportunity-radar-scan | 25 6,18 * * * |
ok | Preserve responsiveness; bound logs/state |
| opportunity-radar-digest | 40 6 * * 1 |
ok | Preserve responsiveness; bound logs/state |
| pod-calendar | 20 5 * * 1 |
ok | Preserve business artifacts; budget growth |
| pod-day | 30 5 * * * |
ok | Preserve business artifacts; budget growth |
| pod-publish | 0 9 * * * |
ok | Preserve business artifacts; budget growth |
| pod-orders | 0 8,18 * * * |
ok | Preserve business artifacts; budget growth |
| pod-pins | 0 10 * * * |
ok | Preserve business artifacts; budget growth |
| pod-analyst | 0 7 * * * |
ok | Preserve business artifacts; budget growth |
| pod-gm | 15 7 * * 1 |
ok | Preserve business artifacts; budget growth |
| pod-research | 0 20 * * 0 |
ok | Preserve business artifacts; budget growth |
| pod-audit | 30 7 * * 6 |
ok | Preserve business artifacts; budget growth |
| pod-merch | 30 8 * * * |
ok | Preserve business artifacts; budget growth |
| pod-laser-cleanup | 15 3 * * * |
ok | Preserve business artifacts; budget growth |
| pod-laser-orders | 5,35 8-21 * * * |
ok | Preserve business artifacts; budget growth |
| pod-coach | 45 7 * * * |
ok | Preserve business artifacts; budget growth |
| pod-scoreboard | 50 7 * * * |
ok | Preserve business artifacts; budget growth |
| pod-scout | 0 6,9,12,15,18,21 * * * |
ok | Preserve business artifacts; budget growth |
| fixer | */5 * * * * |
ok | Preserve responsiveness; bound logs/state |
| pod-golive | */15 * * * * |
ok | Preserve business artifacts; budget growth |
| pod-pin-feeds | 45 9,18 * * * |
ok | Preserve business artifacts; budget growth |
| ops-commit | 20 2 * * * |
ok | Review backup/capacity findings in audit |
| cf-zone-baseline | 0 4 * * 1 |
ok | Preserve responsiveness; bound logs/state |
| offsite-backup | 15 5 * * * |
ok | Review backup/capacity findings in audit |
| offsite-drill | 45 5 1 * * |
ok | Review backup/capacity findings in audit |
| bom-check | */30 7-19 * * 1-5 |
ok | Preserve responsiveness; bound logs/state |
| usage-report | 0 7 * * 1 |
ok | Preserve responsiveness; bound logs/state |
| x-post-prompt | 30 12 * * * |
ok | Preserve responsiveness; bound logs/state |
| stairs-season | 5 * * * * |
ok | Preserve responsiveness; bound logs/state |
| stairs-season | @reboot |
ok | Preserve responsiveness; bound logs/state |
| panel-photos | */2 * * * * |
ok | Preserve responsiveness; bound logs/state |
| cockpit-index | */15 * * * * |
ok | Preserve responsiveness; bound logs/state |
| marketing-snapshot | 5 8 * * * |
ok | Preserve responsiveness; bound logs/state |
| invoice-reminders | 0 6-18 * * * |
ok | Preserve responsiveness; bound logs/state |
| push-summary | 30 7 * * * |
ok | Preserve responsiveness; bound logs/state |
| job-failure-sweep | */10 * * * * |
ok | Preserve responsiveness; bound logs/state |
| job-failure-report | 20 7 * * 1 |
ok | Preserve responsiveness; bound logs/state |
| feedback-sync | */15 * * * * |
ok | Preserve responsiveness; bound logs/state |
| store-backup | 30 2 * * * |
ok | Review backup/capacity findings in audit |
| reading-weekly | 0 8 * * 0 |
ok | Preserve responsiveness; bound logs/state |
| offbox-heartbeat | */5 * * * * |
ok | Preserve responsiveness; bound logs/state |
| job-fixer | */30 * * * * |
ok | Preserve responsiveness; bound logs/state |
| storage-forecast | 0 8 * * * |
ok | Review backup/capacity findings in audit |
| note-release-preflight | 20 5 * * * |
ok | Review backup/capacity findings in audit |
| market-brief-pull | 30 7 * * 1,4 |
ok | Preserve responsiveness; bound logs/state |
| market-brief-meeting | 0 8 * * 1,4 |
ok | Preserve responsiveness; bound logs/state |
| market-brief-nag | 0 12,17 * * 1,4 |
ok | Preserve responsiveness; bound logs/state |
| fixer-prs-refresh | */15 * * * * |
ok | Preserve responsiveness; bound logs/state |
| sec-watch | */5 * * * * |
ok | Preserve responsiveness; bound logs/state |
| qbit-killswitch | * * * * * |
not wrapped | Preserve responsiveness; bound logs/state |
| content-reconcile | 52 * * * * |
ok | Preserve responsiveness; bound logs/state |
| booking-warm | */5 * * * * |
ok | Preserve responsiveness; bound logs/state |
User timers¶
| Timer | Storage treatment |
|---|---|
| codex-remote-control.timer | Keep recovery/security behavior; bound retained logs and state |
| ee-store-prod-health.timer | Keep recovery/security behavior; bound retained logs and state |
| assistant-heartbeat.timer | Keep recovery/security behavior; bound retained logs and state |
| ee-store-cloudflare-purge.timer | Keep recovery/security behavior; bound retained logs and state |
| tester-report-sync.timer | Keep recovery/security behavior; bound retained logs and state |
| notebook-publish.timer | Already change-triggered; bound append log |
| ai-capacity-refresh.timer | Keep recovery/security behavior; bound retained logs and state |
| ai-work-runner.timer | Keep recovery/security behavior; bound retained logs and state |
| codex-auth-heal.timer | Keep recovery/security behavior; bound retained logs and state |
| cron-watch.timer | Keep recovery/security behavior; bound retained logs and state |
| books-snapshot.timer | Same-device copy; preserve independent pool/R2 protection |
| tasks-metrics.timer | Keep recovery/security behavior; bound retained logs and state |
| vault-push.timer | Keep recovery/security behavior; bound retained logs and state |
| codex-update.timer | Verify retained versions/cache budget; avoid deleting active binaries |
| claude-update.timer | Verify retained versions/cache budget; avoid deleting active binaries |
| part-watch.timer | Keep recovery/security behavior; bound retained logs and state |
| craft-update.timer | Verify retained versions/cache budget; avoid deleting active binaries |
| surfaces-check.timer | Keep recovery/security behavior; bound retained logs and state |
| tasks-notify.timer | Keep recovery/security behavior; bound retained logs and state |
| sop-tasks.timer | Keep recovery/security behavior; bound retained logs and state |
| kanboard-cron.timer | Keep recovery/security behavior; bound retained logs and state |
| tasks-digest.timer | Keep recovery/security behavior; bound retained logs and state |
| tasks-digest-canary.timer | Keep recovery/security behavior; bound retained logs and state |
| launchpadlib-cache-clean.timer | Verify retained versions/cache budget; avoid deleting active binaries |
| kicad-check.timer | Keep checks; budget generated reports and rendering cache |
| ai-budget-weekly.timer | Keep recovery/security behavior; bound retained logs and state |
| retention-sweep.timer | Replace active-log rewrites with coordinated rotation; keep data retention rules |
| snap.firmware-updater.firmware-notifier.timer | Keep recovery/security behavior; bound retained logs and state |
System timers¶
| Timer | Storage treatment |
|---|---|
| sysstat-collect.timer | Keep recovery/security behavior; bound retained logs and state |
| wg-docker-watchdog.timer | Keep recovery/security behavior; bound retained logs and state |
| anacron.timer | Keep recovery/security behavior; bound retained logs and state |
| fwupd-refresh.timer | Keep recovery/security behavior; bound retained logs and state |
| apport-autoreport.timer | Keep recovery/security behavior; bound retained logs and state |
| apt-daily.timer | Keep recovery/security behavior; bound retained logs and state |
| dpkg-db-backup.timer | Keep recovery/security behavior; bound retained logs and state |
| logrotate.timer | Keep recovery/security behavior; bound retained logs and state |
| sysstat-summary.timer | Keep recovery/security behavior; bound retained logs and state |
| man-db.timer | Keep recovery/security behavior; bound retained logs and state |
| snapraid-sync.timer | Keep parity/check behavior; explicit date-log retention |
| apt-daily-upgrade.timer | Keep recovery/security behavior; bound retained logs and state |
| rescue-watchdog.timer | Keep USB age/size validation; actual archive budget is self-managed |
| motd-news.timer | Keep recovery/security behavior; bound retained logs and state |
| update-notifier-download.timer | Keep recovery/security behavior; bound retained logs and state |
| systemd-tmpfiles-clean.timer | Keep recovery/security behavior; bound retained logs and state |
| e2scrub_all.timer | Keep recovery/security behavior; bound retained logs and state |
| snapraid-scrub.timer | Keep parity/check behavior; explicit date-log retention |
| fstrim.timer | Keep recovery/security behavior; bound retained logs and state |
| update-notifier-motd.timer | Keep recovery/security behavior; bound retained logs and state |
| maint-badblocks.timer | No next trigger in inventory; historical one-shot, not recurring growth |
| maint-dedupe.timer | No next trigger in inventory; historical one-shot, not recurring growth |
| maint-drill.timer | No next trigger in inventory; historical one-shot, not recurring growth |
| snapd.snap-repair.timer | Keep recovery/security behavior; bound retained logs and state |
| ua-timer.timer | Keep recovery/security behavior; bound retained logs and state |
Root cron and system dispatchers¶
Root entries below come from /mnt/rescue/host/crontab.root, exported November 10 at 01:30. Direct live root readback requires scoped access.
| Source | Entries | Storage treatment |
|---|---|---|
| Root cron | 01:00 docker-backup; 01:30 rescue-sync; 02:00 torrentvpn-backup | Fix failed-snapshot publication; retain USB prune-to-fit; retire/repair obsolete unmounted USB job |
| /etc/cron.d/rsnapshot | Hourly :00; daily 02:30; Sunday weekly 02:35; monthly 02:40; yearly 02:45 | Measure unique history and migrate before reducing retention |
| /etc/cron.d/anacron | :30 07–23 | Guarded off under systemd; timer dispatches anacron |
| /etc/cron.d/e2scrub_all | Sunday 03:30; daily 03:10 | Guarded off under systemd; e2scrub timer exists |
| /etc/cron.d/sysstat | Every ten minutes :05–55 and 23:59 | debian-sa1 exits immediately under systemd; not duplicate active sampling |
| /etc/crontab | Hourly :17; daily 06:25; Sunday 06:47; monthly 06:52 | Daily/weekly/monthly guarded when anacron exists; inspect called jobs, do not remove dispatcher blindly |
| /etc/anacrontab | Daily, weekly, monthly | Calls run-parts; system package job retention applies |
Daily scripts: 0anacron, apport, apt-compat, dpkg, google-chrome, logrotate, man-db, sysstat. Weekly: 0anacron, man-db. Monthly: 0anacron. Sysstat's daily wrapper also exits under systemd. The hourly directory contains only .placeholder, so the hourly dispatcher has no runnable scripts.
Container and application scope¶
All 80 container logging configurations were inspected: 79 explicit caps, mosquitto missing explicit max-size/max-file options. Docker internal layers/volumes require privileged accounting for exact usage by file. Immich dump output was measured at 1.01 GB across 15 files; precious holds 38 dumps, 2.53 GB, because it deliberately never deletes. Sonarr/Radarr/Prowlarr native backup directories total only about 58 MB; their backup settings are not explicitly set in the inspected Config tables, so defaults were not guessed. Home Assistant's main DB is about 164 MB. Recyclarr resources are 151 MB and are included in every Docker configuration snapshot. Store scheduler containers, app-internal retries, media scans and other embedded schedulers were inventoried as application scope, with exhaustive internal retention discovery still outstanding.
Protected business outputs, torrent data and old-only backup history are not automatic cleanup candidates. No paused content or frozen design generation was resumed.
Disabled timer files¶
Timer enablement was cross-checked against all installed files: 37 user timer files and 34 system timer files. The following additional files are disabled and were not assumed to be recurring writers. They were not enabled during the audit.
User: business-mail-20260917, content-delivery-check, content-review-prep, content-schedule-audit, ee-store-catalog-observe, ee-store-order-sync, postiz-scheduler-watchdog, systemd-tmpfiles-clean, task-verify.
System: pmfind, pmie_check, pmie_daily, pmie_farm_check, pmlogger_check, pmlogger_daily, pmlogger_farm_check, systemd-sysupdate-reboot, systemd-sysupdate. The system tmpfiles-clean timer is static and loaded; the separate user timer is disabled. No duplicate sysstat execution was inferred from its dormant cron wrappers.