All scheduled jobs across gateway cron, system crontab, and systemd timers
| Job Name | Description | Schedule | Last Run | Status | Notes |
|---|---|---|---|---|---|
| 📊 TRENDS & ANALYSIS | |||||
| algarve-trends-analysis | Shared seasonal trends for property selection | Mon 6:00 AM Europe/Lisbon |
last: Mon 05 Oct 06:00 next: Mon 12 Oct 06:00 |
ENABLED |
Generates trends.jsonUsed by all 3 social posting jobs Script: dream-social-ai/trends.js
|
| algarve-trends-report | Weekly search trends dashboard | Mon 6:30 AM Europe/Lisbon |
last: Mon 05 Oct 06:30 next: Mon 12 Oct 06:30 |
ENABLED |
Deploys to /opt/lampp/htdocs/algarve-trends-data.jsonSummer '26: Demand 85/100, Top: Beach/Pool/Villa |
| 📱 SOCIAL MEDIA AUTO-POSTING | |||||
| dream-social-post | Algarve Dream — FB/IG | Mon, Wed, Fri 10:00 AM |
last: Mon 05 Oct 10:00 next: Wed 07 Oct 10:00 |
ENABLED |
Site: algarvedream.com Script: dream-social-ai/poster.jsSelection: Trend-weighted via shared trends.json |
| stellar-social-post | Stellar Places — FB/IG/LI | Sun, Tue, Thu, Sat 10:00 AM |
last: Tue 06 Oct 10:00 next: Thu 08 Oct 10:00 |
ENABLED |
Site: stellar-places-realty.com Script: stellar-social-ai/poster.jsSelection: Trend-weighted via shared trends.json |
| a1-social-post | A1 Algarve — Property FB/IG | Tue, Thu, Sat 10:00 AM |
last: Tue 06 Oct 10:00 next: Thu 08 Oct 10:00 |
ENABLED |
Site: a1-algarve.com · Created Jul 28 Script: a1-social-ai/poster.jsIG: @a1algarveluxury · 130 properties |
| a1-news-post NEW | A1 Algarve — Market News IG+LI | Sat 11:00 AM Europe/Lisbon |
last: Sat 03 Oct 11:00 next: Sat 10 Oct 11:00 |
ENABLED |
Content: a1-algarve.com/blog + web search Script: a1-social-ai/poster.js (news mode)Image: Title + A1 logo · IG: @a1algarveluxury First run: Sat 8 Aug 11:00 AM |
| dream-linkedin-post | Algarve Dream — B2B insight posts (LinkedIn) | Tue & Thu 9:30 AM |
last: Tue 06 Oct 09:30 next: Thu 08 Oct 09:30 |
ENABLED |
Phase F — agency/partner recruitment Script: dream-social-ai/poster-linkedin.jsRotation state: linkedin-rotation.json
|
| 📈 REPORTING & MAINTENANCE | |||||
| dream-ig-weekly-insights NEW | Instagram audience report — @algarve_dream | Mon 7:00 AM Europe/Lisbon |
last: Mon 31 Aug 07:00 next: Mon 07 Sep 07:00 |
ENABLED |
Phase A — read-only Instagram Insights Script: algarve-dream-ig/ig-insights.js --weeklyDemographics gated by Meta until 100 followers (now 31) |
| algarve-dream-ig-token-refresh NEW | Extends the Instagram API token 60 days | 1st of month 8:30 AM |
last: Thu 01 Oct 08:30 next: Sun 01 Nov 08:30 |
ENABLED |
Silent on success, alerts on failure Script: algarve-dream-ig/ig-auth.js --refreshToken valid to 25 Oct 2026 |
trends.json
⟶
| Schedule | Runs | Script |
|---|---|---|
| 0 3 * * 2,6 | Tue & Sat · 3:00 AM | nas-usb-rsync.sh NAS ⇒ USB mirror (backup tier 2) |
| 0 4 * * * | Daily · 4:00 AM | crontab-backup.txt snapshots crontab -l |
| 5 4 * * * | Daily · 4:05 AM | memory-backup.sh memory files backup |
| 30 5 * * * | Daily · 5:30 AM | algarve_scraper.py scrape Algarve listings (python3) |
| 45 5 * * * | Daily · 5:45 AM | dashboard-run.sh cron dashboard refresh |
| 0 6 * * 1 | Monday · 6:00 AM | algarve-news-run.sh Algarve news report |
| 15 6 * * 1,4 | Mon & Thu · 6:15 AM | forex-run.sh forex weekly report |
| 30 6 1,15 * * | 1st & 15th · 6:30 AM | realestate-run.sh real estate market report |
| 45 6 * * * | Daily · 6:45 AM | dream-metrics-run.sh Dream social metrics |
| 0 12 * * 0,2,4 | Sun, Tue & Thu · 12:00 PM | a1-reels-run.sh A1 Instagram Reels (price-point series) |
smb://truenas.local/a1private. This is now the primary copy,
scheduled by Déjà Dup itself rather than cron, so it does not appear in the block above.nas-usb-rsync.sh, Tue & Sat 3:00 AM, rsyncs the NAS chain onto the
OpenClaw_Backup USB drive (ext4, UUID-pinned). Four guards run before it transfers: USB UUID must
match, NAS mount must be present (best-effort remount first), source must be readable and non-empty,
and ≥1 GB free. That third guard matters most — --delete against a stale gvfs mount that reads
as empty would otherwise erase the entire offline copy. Log:
logs/nas-usb-rsync.log.usb-backup-run.sh
(duplicity direct → USB, formerly Sunday 1:15 AM) was unscheduled 27 Aug 2026 — it wrote a second,
independent encrypted chain to the same physical stick as layer 2, which added cost without adding a failure domain.
The script is kept on disk for ad-hoc encrypted snapshots and for restores.| Timer Name | Next Run | Service | Status |
|---|---|---|---|
| sysstat-collect.timer | Tue 15:50 | sysstat-collect.service | ACTIVE |
| fwupd-refresh.timer | Tue 16:11 | fwupd-refresh.service | ACTIVE |
| anacron.timer | Tue 16:33 | anacron.service | ACTIVE |
| certbot.timer | Tue 19:06 | certbot.service | ACTIVE |
| apt-daily.timer | Tue 20:48 | apt-daily.service | ACTIVE |
| update-notifier-download.timer | Tue 20:54 | update-notifier-download.service | ACTIVE |
| systemd-tmpfiles-clean.timer | Tue 21:01 | systemd-tmpfiles-clean.service | ACTIVE |
| dpkg-db-backup.timer | Wed 00:00 | dpkg-db-backup.service | ACTIVE |
| logrotate.timer | Wed 00:00 | logrotate.service | ACTIVE |
| sysstat-summary.timer | Wed 00:07 | sysstat-summary.service | ACTIVE |
| motd-news.timer | Wed 03:26 | motd-news.service | ACTIVE |
| apt-daily-upgrade.timer | Wed 06:08 | apt-daily-upgrade.service | ACTIVE |
| man-db.timer | Wed 08:14 | man-db.service | ACTIVE |
| update-notifier-motd.timer | Fri 11:33 | update-notifier-motd.service | ACTIVE |
| e2scrub_all.timer | Sun Aug 2 | e2scrub_all.service | ACTIVE |
| fstrim.timer | Mon Aug 3 | fstrim.service | ACTIVE |
| apport-autoreport.timer | — | apport-autoreport.service | INACTIVE |
| snapd.snap-repair.timer | — | snapd.snap-repair.service | INACTIVE |
| ua-timer.timer | — | ua-timer.service | INACTIVE |