System
View, add, and manage scheduled backend jobs. Changes take effect immediately.
Installed Status
sudo /mnt/drive3/customerdb/install_customerdb_cron.sh on the server to refresh the installed file.
Scheduled Jobs
| Job | Schedule | Command | Status | Last Run | |
|---|---|---|---|---|---|
|
Next-Day Customer Emails
Sends pickup reminder emails to customers whose appointment is tomorrow.
|
0 20 * * *
Daily at 20:00
|
php8.3 /mnt/drive3/customerdb/backend/jobs/send_nextday_customer_emails.php |
Enabled
✓ OK |
2026-07-09 00:00 Output[2026-07-08 20:00:01 EDT] Next-day customer email job starting.
Business TZ: America/New_York
Server TZ: UTC
Today: 2026-07-08
Tomorrow: 2026-07-09
Import first: synced tomorrow (2026-07-09) appointments.
fetched=0, visits_created=0, orders_created=0
Raw next-day outreach rows: 0
Emailable raw rows: 0
Found 0 customer(s) with tomorrow's pickup after dedupe.
Nothing to send. Exiting.
|
|
|
Morning Import
Runs the morning import at 6:00 AM for today.
|
0 6 * * *
Daily at 6:00
|
php8.3 /mnt/drive3/customerdb/backend/jobs/smoke_morning_jobs.php && php8.3 /mnt/drive3/customerdb/backend/jobs/run_morning_jobs.php $(date +\%F) |
Enabled
✓ OK |
2026-07-08 10:00 OutputMorning jobs smoke test passed. Bootstrap and service functions are available. binary=/usr/bin/php8.3 version=8.3.6
{"ok":true,"job_run_id":155,"start_date":"2026-07-08","end_date":"2026-07-08","setmore_sync":{"start_date":"2026-07-08","end_date":"2026-07-08","appointments_fetched":0,"customers_created":0,"visits_created":0,"orders_created":0,"appointments_synced":0,"appointments_skipped_out_of_range":0,"appointments_skipped_placeholder_name":0,"appointments_skipped_missing_identity":0,"appointments_skipped_canceled":0},"daily_totals":[],"appointments":[]}
|
|
|
Morning Jobs
Runs appointment sync, workflow updates, and morning report generation.
|
0 9 * * *
Daily at 9:00
|
php8.3 /mnt/drive3/customerdb/frontend/api/send_reminders.php |
Disabled | — | |
|
Nightly Reports
Generates and emails nightly summary reports.
|
0 18 * * *
Daily at 18:00
|
php8.3 /mnt/drive3/customerdb/backend/jobs/send_nightly_reports.php |
Enabled
✓ OK |
2026-07-08 22:00 Output{"success":true,"message":"Sent via SMTP (PHPMailer)","to_email":"admin@ellasalterations.com","date":"2026-07-08"}
|
|
|
Database Backup
Full MariaDB backup to backup directory.
|
0 2 * * *
Daily at 2:00
|
bash /mnt/drive3/customerdb/backup.sh |
Enabled
✓ OK |
2026-07-09 06:05 Output[2026-07-09 02:00:01] ── Backup starting ── [2026-07-09 02:00:01] Dumping database ellas_alterations … [2026-07-09 02:00:01] ✓ Database backup: /mnt/drive3/customerdb/backups/db_20260709_020001.sql.gz (39M) [2026-07-09 02:00:01] Archiving app files … [2026-07-09 02:00:01] ✓ Files backup: /mnt/drive3/customerdb/backups/files_20260709_020001.tar.gz (2.4G) [2026-07-09 02:00:01] Archiving PDF reports … [2026-07-09 02:00:01] ✗ Reports backup FAILED [2026-07-09 02:00:01] Removing backups older than 30 days … [2026-07-09 02:00:01] ✓ Backup complete. Total backup storage: 36G [2026-07-09 02:00:01] ── Done ── |
|
|
Daily Cleanup
Removes temp files and old logs.
|
0 4 * * *
Daily at 4:00
|
php8.3 /mnt/drive3/customerdb/backend/jobs/daily_cleanup.php |
Enabled
✓ OK |
2026-07-08 08:00 Output[2026-07-08 08:00:01] Daily cleanup completed. /mnt/drive3/customerdb/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/backend/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/webui/tmp: scanned=0 deleted=0 logs_trimmed=0 cron_job_run_deleted=4 |
|
|
Cleanup Repo Branch Folders
Deletes folders older than 5 days from /mnt/drive3/customerdb_repo/branches using /mnt/drive1/scripts/cleanup_customerdb_branches.sh.
|
20 3 * * *
Daily at 3:20
|
bash /mnt/drive1/scripts/cleanup_customerdb_branches.sh |
Enabled | — | |
|
Add Name Records Auto Delete
Deletes placeholder Add Name customer records that have no visits, orders, payments, phone, or email.
|
20 4 * * *
Daily at 4:20
|
php8.3 /mnt/drive3/customerdb/backend/jobs/delete_add_name_records.php |
Enabled
✓ OK |
2026-07-08 08:20 Output[2026-07-08 08:20:01] Add Name cleanup (orphan mode) starting. Found 0 record(s). [2026-07-08 08:20:01] Done. Deleted 0 Add Name record(s). |
|
|
Report Queue Processor
Processes queued report generation tasks and retries missing receipt/work-order PDFs.
|
5 * * * *
5 * * * *
|
php8.3 /mnt/drive3/customerdb/backend/jobs/process_report_generation_queue.php --limit=300 |
Enabled | — | |
|
Report Missing Backfill (Today)
Hourly repair pass for today's visits to generate missing required reports.
|
10 * * * *
10 * * * *
|
php8.3 /mnt/drive3/customerdb/backend/jobs/backfill_missing_visit_reports.php --days=1 --limit=500 --timeout=70 |
Enabled | — | |
|
Report Missing Alert
Logs/alerts when paid or completed visits are missing required reports.
|
15 * * * *
15 * * * *
|
php8.3 /mnt/drive3/customerdb/backend/jobs/report_alert_missing.php |
Enabled | — | |
|
Report Renderer Health Check
Runs a lightweight PDF renderer health check and stores status.
|
20 * * * *
20 * * * *
|
php8.3 /mnt/drive3/customerdb/backend/jobs/report_renderer_health_check.php |
Enabled | — | |
|
Weekly Report Integrity Export
Exports weekly report completeness CSV for audit/compliance review.
|
0 6 * * 1
Weekly (Mon) at 6:00
|
php8.3 /mnt/drive3/customerdb/backend/jobs/export_weekly_report_integrity.php |
Enabled | — |
sudo cp /tmp/customerdb_crontab_export.txt /etc/cron.d/customerdb && sudo chmod 644 /etc/cron.d/customerdb
The export file is regenerated automatically whenever you save, toggle, or delete a job. Exported jobs now run through the cron wrapper so scheduled runs can log history and send notifications.
Recent Runs
[2026-07-09 02:00:01] ── Backup starting ── [2026-07-09 02:00:01] Dumping database ellas_alterations … [2026-07-09 02:00:01] ✓ Database backup: /mnt/drive3/customerdb/backups/db_20260709_020001.sql.gz (39M) [2026-07-09 02:00:01] Archiving app files … [2026-07-09 02:00:01] ✓ Files backup: /mnt/drive3/customerdb/backups/files_20260709_020001.tar.gz (2.4G) [2026-07-09 02:00:01] Archiving PDF reports … [2026-07-09 02:00:01] ✗ Reports backup FAILED [2026-07-09 02:00:01] Removing backups older than 30 days … [2026-07-09 02:00:01] ✓ Backup complete. Total backup storage: 36G [2026-07-09 02:00:01] ── Done ──
[2026-07-08 20:00:01 EDT] Next-day customer email job starting.
Business TZ: America/New_York
Server TZ: UTC
Today: 2026-07-08
Tomorrow: 2026-07-09
Import first: synced tomorrow (2026-07-09) appointments.
fetched=0, visits_created=0, orders_created=0
Raw next-day outreach rows: 0
Emailable raw rows: 0
Found 0 customer(s) with tomorrow's pickup after dedupe.
Nothing to send. Exiting.
{"success":true,"message":"Sent via SMTP (PHPMailer)","to_email":"admin@ellasalterations.com","date":"2026-07-08"}
Morning jobs smoke test passed. Bootstrap and service functions are available. binary=/usr/bin/php8.3 version=8.3.6
{"ok":true,"job_run_id":155,"start_date":"2026-07-08","end_date":"2026-07-08","setmore_sync":{"start_date":"2026-07-08","end_date":"2026-07-08","appointments_fetched":0,"customers_created":0,"visits_created":0,"orders_created":0,"appointments_synced":0,"appointments_skipped_out_of_range":0,"appointments_skipped_placeholder_name":0,"appointments_skipped_missing_identity":0,"appointments_skipped_canceled":0},"daily_totals":[],"appointments":[]}
[2026-07-08 08:20:01] Add Name cleanup (orphan mode) starting. Found 0 record(s). [2026-07-08 08:20:01] Done. Deleted 0 Add Name record(s).
[2026-07-08 08:00:01] Daily cleanup completed. /mnt/drive3/customerdb/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/backend/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/webui/tmp: scanned=0 deleted=0 logs_trimmed=0 cron_job_run_deleted=4
[2026-07-08 02:00:01] ── Backup starting ── [2026-07-08 02:00:01] Dumping database ellas_alterations … [2026-07-08 02:00:01] ✓ Database backup: /mnt/drive3/customerdb/backups/db_20260708_020001.sql.gz (39M) [2026-07-08 02:00:01] Archiving app files … [2026-07-08 02:00:01] ✓ Files backup: /mnt/drive3/customerdb/backups/files_20260708_020001.tar.gz (2.4G) [2026-07-08 02:00:01] Archiving PDF reports … [2026-07-08 02:00:01] ✗ Reports backup FAILED [2026-07-08 02:00:01] Removing backups older than 30 days … [2026-07-08 02:00:01] ✓ Backup complete. Total backup storage: 32G [2026-07-08 02:00:01] ── Done ──
[2026-07-07 20:00:01 EDT] Next-day customer email job starting.
Business TZ: America/New_York
Server TZ: UTC
Today: 2026-07-07
Tomorrow: 2026-07-08
Import first: synced tomorrow (2026-07-08) appointments.
fetched=0, visits_created=0, orders_created=0
Raw next-day outreach rows: 0
Emailable raw rows: 0
Found 0 customer(s) with tomorrow's pickup after dedupe.
Nothing to send. Exiting.
{"success":true,"message":"Sent via SMTP (PHPMailer)","to_email":"admin@ellasalterations.com","date":"2026-07-07"}
Morning jobs smoke test passed. Bootstrap and service functions are available. binary=/usr/bin/php8.3 version=8.3.6
{"ok":true,"job_run_id":154,"start_date":"2026-07-07","end_date":"2026-07-07","setmore_sync":{"start_date":"2026-07-07","end_date":"2026-07-07","appointments_fetched":0,"customers_created":0,"visits_created":0,"orders_created":0,"appointments_synced":0,"appointments_skipped_out_of_range":0,"appointments_skipped_placeholder_name":0,"appointments_skipped_missing_identity":0,"appointments_skipped_canceled":0},"daily_totals":[],"appointments":[]}
[2026-07-07 08:20:01] Add Name cleanup (orphan mode) starting. Found 0 record(s). [2026-07-07 08:20:01] Done. Deleted 0 Add Name record(s).
[2026-07-07 08:00:02] Daily cleanup completed. /mnt/drive3/customerdb/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/backend/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/webui/tmp: scanned=0 deleted=0 logs_trimmed=0 cron_job_run_deleted=7
[2026-07-07 02:00:01] ── Backup starting ── [2026-07-07 02:00:01] Dumping database ellas_alterations … [2026-07-07 02:00:01] ✓ Database backup: /mnt/drive3/customerdb/backups/db_20260707_020001.sql.gz (39M) [2026-07-07 02:00:01] Archiving app files … [2026-07-07 02:00:01] ✓ Files backup: /mnt/drive3/customerdb/backups/files_20260707_020001.tar.gz (2.4G) [2026-07-07 02:00:01] Archiving PDF reports … [2026-07-07 02:00:01] ✗ Reports backup FAILED [2026-07-07 02:00:01] Removing backups older than 30 days … [2026-07-07 02:00:01] ✓ Backup complete. Total backup storage: 27G [2026-07-07 02:00:01] ── Done ──
[2026-07-06 20:00:01 EDT] Next-day customer email job starting.
Business TZ: America/New_York
Server TZ: UTC
Today: 2026-07-06
Tomorrow: 2026-07-07
Import first: synced tomorrow (2026-07-07) appointments.
fetched=0, visits_created=0, orders_created=0
Raw next-day outreach rows: 0
Emailable raw rows: 0
Found 0 customer(s) with tomorrow's pickup after dedupe.
Nothing to send. Exiting.
{"success":true,"message":"Sent via SMTP (PHPMailer)","to_email":"admin@ellasalterations.com","date":"2026-07-06"}
Morning jobs smoke test passed. Bootstrap and service functions are available. binary=/usr/bin/php8.3 version=8.3.6
{"ok":true,"job_run_id":153,"start_date":"2026-07-06","end_date":"2026-07-06","setmore_sync":{"start_date":"2026-07-06","end_date":"2026-07-06","appointments_fetched":0,"customers_created":0,"visits_created":0,"orders_created":0,"appointments_synced":0,"appointments_skipped_out_of_range":0,"appointments_skipped_placeholder_name":0,"appointments_skipped_missing_identity":0,"appointments_skipped_canceled":0},"daily_totals":[],"appointments":[]}
[2026-07-06 08:20:01] Add Name cleanup (orphan mode) starting. Found 0 record(s). [2026-07-06 08:20:01] Done. Deleted 0 Add Name record(s).
[2026-07-06 08:00:01] Daily cleanup completed. /mnt/drive3/customerdb/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/backend/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/webui/tmp: scanned=0 deleted=0 logs_trimmed=0 cron_job_run_deleted=5
[2026-07-06 02:00:01] ── Backup starting ── [2026-07-06 02:00:01] Dumping database ellas_alterations … [2026-07-06 02:00:01] ✓ Database backup: /mnt/drive3/customerdb/backups/db_20260706_020001.sql.gz (39M) [2026-07-06 02:00:01] Archiving app files … [2026-07-06 02:00:01] ✓ Files backup: /mnt/drive3/customerdb/backups/files_20260706_020001.tar.gz (2.4G) [2026-07-06 02:00:01] Archiving PDF reports … [2026-07-06 02:00:01] ✗ Reports backup FAILED [2026-07-06 02:00:01] Removing backups older than 30 days … [2026-07-06 02:00:01] ✓ Backup complete. Total backup storage: 23G [2026-07-06 02:00:01] ── Done ──
[2026-07-05 20:00:01 EDT] Next-day customer email job starting.
Business TZ: America/New_York
Server TZ: UTC
Today: 2026-07-05
Tomorrow: 2026-07-06
Import first: synced tomorrow (2026-07-06) appointments.
fetched=0, visits_created=0, orders_created=0
Raw next-day outreach rows: 0
Emailable raw rows: 0
Found 0 customer(s) with tomorrow's pickup after dedupe.
Nothing to send. Exiting.
{"success":true,"message":"Sent via SMTP (PHPMailer)","to_email":"admin@ellasalterations.com","date":"2026-07-05"}
Morning jobs smoke test passed. Bootstrap and service functions are available. binary=/usr/bin/php8.3 version=8.3.6
{"ok":true,"job_run_id":152,"start_date":"2026-07-05","end_date":"2026-07-05","setmore_sync":{"start_date":"2026-07-05","end_date":"2026-07-05","appointments_fetched":0,"customers_created":0,"visits_created":0,"orders_created":0,"appointments_synced":0,"appointments_skipped_out_of_range":0,"appointments_skipped_placeholder_name":0,"appointments_skipped_missing_identity":0,"appointments_skipped_canceled":0},"daily_totals":[],"appointments":[]}
[2026-07-05 08:20:01] Add Name cleanup (orphan mode) starting. Found 0 record(s). [2026-07-05 08:20:01] Done. Deleted 0 Add Name record(s).
[2026-07-05 08:00:01] Daily cleanup completed. /mnt/drive3/customerdb/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/backend/tmp: scanned=0 deleted=0 /mnt/drive3/customerdb/webui/tmp: scanned=0 deleted=0 logs_trimmed=0 cron_job_run_deleted=7
[2026-07-05 02:00:01] ── Backup starting ── [2026-07-05 02:00:01] Dumping database ellas_alterations … [2026-07-05 02:00:01] ✓ Database backup: /mnt/drive3/customerdb/backups/db_20260705_020001.sql.gz (39M) [2026-07-05 02:00:01] Archiving app files … [2026-07-05 02:00:01] ✓ Files backup: /mnt/drive3/customerdb/backups/files_20260705_020001.tar.gz (2.4G) [2026-07-05 02:00:01] Archiving PDF reports … [2026-07-05 02:00:01] ✗ Reports backup FAILED [2026-07-05 02:00:01] Removing backups older than 30 days … [2026-07-05 02:00:01] ✓ Backup complete. Total backup storage: 19G [2026-07-05 02:00:01] ── Done ──
Add New Job