Purpose
If Joseph ever leaves SkyRun, the Workspace account (Joseph.Bowens@SkyRun.com) could be frozen and the Drive copy goes with it. This quarterly snapshot ensures he retains:
- A local zip at
~/Library/Application Support/SkyRun_Backups/ - An iCloud Drive mirror at
~/Library/Mobile Documents/com~apple~CloudDocs/SkyRun_Backups/
iCloud survives Mac loss; local survives iCloud outage. Belt AND suspenders.
Schedule
launchd agent com.skyrun.quarterly-backup runs at:
- Jan 1, Apr 1, Jul 1, Oct 1 at 03:00 local time
If the Mac is asleep, macOS wakes it if pmset repeat wakeorpoweron is set (done 2026-04-23). If the Mac is off, the job runs at next boot (launchd catch-up).
What's backed up
- Entire contents of
/Users/josephbowens/Desktop/SkyRun/— preserves folder structure and original file formats (.docx / .xlsx / .pptx stay as-is) - Excludes:
.DS_Store, Excel/Word lock files (.~lock.*),.wrangler/cache,node_modules/,__pycache__/
Archive naming
Format: SkyRun_{YYYY}-Q{N}_{YYYY-MM-DDTHHMMSSZ}.zip
Example: SkyRun_2026-Q2_2026-04-24T000635Z.zip
Rotation
Keeps the 4 most recent archives (1 year of quarterly snapshots). Oldest gets deleted automatically after each run.
Manual run
bash
bash "/Users/josephbowens/Library/Application Support/SkyRun/quarterly_backup.sh"
Disable / enable
- Unload agent:
launchctl unload ~/Library/LaunchAgents/com.skyrun.quarterly-backup.plist - Re-load agent:
launchctl load ~/Library/LaunchAgents/com.skyrun.quarterly-backup.plist - Disable iCloud mirror:
rm "/Users/josephbowens/Library/Application Support/SkyRun/.icloud_backup_enabled" - Enable iCloud mirror:
touch "/Users/josephbowens/Library/Application Support/SkyRun/.icloud_backup_enabled"
Heartbeat integration
Writes ~/Library/Application Support/SkyRun/health/{YYYY-MM-DD}_quarterly-backup_{HHMM}.json every run. nightly-consolidation Section F picks this up for system-health monitoring — if a quarterly run fails, morning brief flags it RED.
Push notification
Sends an ntfy push via notify.sh when the backup completes:
> 📦 SkyRun Quarterly Backup Complete — {quarter} snapshot: {size} → {path}. iCloud mirror: ok. {N} archives retained.
Files
- Script:
~/Library/Application Support/SkyRun/quarterly_backup.sh - Launch agent:
~/Library/LaunchAgents/com.skyrun.quarterly-backup.plist - Backups:
~/Library/Application Support/SkyRun_Backups/(local) - Backups mirror:
~/Library/Mobile Documents/com~apple~CloudDocs/SkyRun_Backups/(iCloud) - iCloud flag:
~/Library/Application Support/SkyRun/.icloud_backup_enabled
What to do if Joseph ever leaves SkyRun
1. Immediately after notice — run manual backup once:
bash "/Users/josephbowens/Library/Application Support/SkyRun/quarterly_backup.sh"
2. Within 24h — copy the zip(s) from iCloud to a personal cloud (Dropbox, personal Gmail Drive, external drive) so it's fully outside SkyRun's control
3. Before handing in laptop — copy entire ~/Library/Application Support/SkyRun_Backups/ folder to external drive
4. In the quarter after leaving — the scheduled job will still run locally (it doesn't depend on the SkyRun Workspace account). Joseph keeps all history.
Related
reference_drive_sync.md— the upstream sync that this is insurance forreference_system_monitoring.md— how heartbeats get surfacedreference_scheduled_tasks.md— fleet context