Install
openclaw skills install @voronindenis5/backup-3-2-1-auditorUse when you realize your photos/code/documents exist in exactly one place (or your 'backup' is a external drive in the same room as the computer) — audits your actual data-loss risk against the 3-2-1 rule (3 copies, 2 media, 1 offsite) asset by asset, scores blast radius (ransomware encrypts synced copies too), prices honest recovery (professional recovery lab $300-3000 vs $0), generates the minimum-cost redundancy plan for YOUR asset list, and produces a restore-test drill because an untested backup is a hope, not a backup.
openclaw skills install @voronindenis5/backup-3-2-1-auditorAn untested backup is a hope, not a backup. Most people discover their backup strategy failed at the exact moment they need it: the external drive died two years ago, the cloud sync encrypted along with the laptop (ransomware follows sync), the "backup" was the same disk. This tool audits what you ACTUALLY have, asset by asset, against the 3-2-1 rule and scores the real risk.
Stdlib Python, offline, local JSON registry.
Don't use for: enterprise backup policy (different tool class), or after active ransomware detection (isolate from network first, then this tool for the post-mortem).
python3 scripts/backup_auditor.py add --asset "family photos 2009-2026" \
--copies "laptop,icloud photos,external HDD in desk drawer" --value irreplaceable
python3 scripts/backup_auditor.py add --asset "code repos" \
--copies "github,workstation" --value recreate-cheap
python3 scripts/backup_auditor.py audit
python3 scripts/backup_auditor.py blast
python3 scripts/backup_auditor.py price
python3 scripts/backup_auditor.py plan
python3 scripts/backup_auditor.py drill --asset "family photos" --result "restored 3 random files OK"
python3 scripts/backup_auditor.py drill --due
| Rule | Means | Common failure |
|---|---|---|
| 3 copies | primary + 2 backups | "iCloud IS my backup" = 1.5 copies (sync ≠ backup) |
| 2 media | different device types | laptop + external SSD plugged into the laptop = 1 media for surge/ransomware purposes |
| 1 offsite | survives fire/theft/flood | external drive in the same desk ≠ offsite; cloud sync counts as offsite ONLY if versioned |
| Versioned | can roll back before encryption event | plain sync mirrors ransomware's damage in seconds |
| Air-gapped | unreachable from the network | rotate two offline drives; one always unplugged |
Asset value classes:
$ backup_auditor.py audit
ASSET: family photos 2009-2026 [irreplaceable]
copies: laptop, iCloud Photos
3 copies: FAIL (2) media: FAIL (both live-sync from phone/laptop)
offsite: PARTIAL (cloud but unversioned tier)
ransomware blast: BOTH copies reachable from phone/laptop — no rollback
VERDICT: FAIL — one device-loss or ransomware event from zero
recovery if lost: lab $300-3000, ~40% (photos on dead phone)
$ backup_auditor.py plan
MINIMUM-COST PLAN:
family photos: add (a) versioned cloud tier OR rotated 2-drive
offline pair — one unplugged at all times; (b) annual copy to
relative/bank. Result: 3 copies / 2 media / 1 offsite / rollback.
code repos: PASS (GitHub + workstation = fine for recreate-cheap).
NEXT DRILL DUE: 2026-12-10 (quarterly)