feat(vds-backup-rsync-kreknin): done — daily VDS→kreknin live, cron armed

Pipeline /opt/stacks/backup/scripts/run.sh + cron /etc/cron.d/vds-backup
(root, 0 5 * * *) → kreknin /volume1/NetBackup/vds-kzntsv/<DATE>/ +
latest symlink. DB dumps (pg/maria/mongo/redis), /opt/stacks data,
/etc/{ssh,ufw,hosts,docker}, vitya .ssh. Dual notify: msmtp+Yandex email
+ ntfy publish vds-backup topic. Retention 7 daily snapshots.

Smoke run 2026-05-20 23:37 → 00:00: 71,867 files / 11.74G transferred,
21m27s, exit 0. Email Yandex 250, ntfy 200. SPOF gap closed for VDS.

Sub-tasks discovered + resolved en route:
- apt install cron (Ubuntu 24.04 minimal не имел его out-of-box)
- mongodump требует legacy --ssl --sslAllowInvalidCertificates flags
- Permission denials под vitya → cron as root
- msmtprc moved to /etc/ для root cron

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-21 00:02:59 +03:00
parent 059e8ed9ff
commit aedfddb348
2 changed files with 42 additions and 18 deletions

View File

@@ -53,10 +53,12 @@ _Updated: 2026-05-20_
---
## [vds-backup-rsync-kreknin] — ежедневный rsync VDS→kreknin в 05:00 MSK + email-нотификация
**Status:** ready (заведена 2026-05-20). Детали + sketch implementation в [vds-backup-rsync-kreknin.md](vds-backup-rsync-kreknin.md).
**Where I stopped:** task создана для backup pipeline VDS → kreknin (closing SPOF gap из [[future-resilient-architecture-goals]]). SMTP creds для noreply@snolla.com на Yandex сохранены в `~/projects/.common/secrets/noreply-snolla-smtp.env`. Рекомендованный recipient `vitya.kuznetsov@gmail.com`. Дублирующий канал — [[vds-ntfy-push]] (push на телефон).
**Next action:** msmtp setup на VDS + rsync script с DB dumps + --link-dest incremental + cron 05:00 + email на vitya.kuznetsov@gmail.com + ntfy publish. Retention 7d/4w/6m.
## 🟢 [vds-backup-rsync-kreknin] — daily VDS→kreknin live, smoke green, cron armed
**Status:** done (2026-05-20 → 2026-05-21 00:00 first-run завершён успешно). Детали в [vds-backup-rsync-kreknin.md](vds-backup-rsync-kreknin.md).
**Result:** rsync `--link-dest` pipeline `/opt/stacks/backup/scripts/run.sh` под cron `0 5 * * *` (root) → kreknin `/volume1/NetBackup/vds-kzntsv/<DATE>/` + symlink `latest`. DB dumps (pg/maria/mongo/redis), system config (/etc/ssh, ufw, hosts, docker), ssh keys, /opt/stacks data. Notification dual-channel: email через msmtp+Yandex (`/etc/msmtprc`) + ntfy publish на `vds-backup` topic. Retention 7 daily snapshots. Smoke run done — 71,867 files / 11.74G в 21m27s, exit 0. Cron service installed (apt install cron — Ubuntu 24.04 не имел его) + enabled. Next run автоматически 2026-05-21 05:00 MSK.
**SPOF gap status:** closed for VDS — full restore from kreknin возможен (DB dumps + конфиги + ssh keys).
**Open:** phone-side smoke (user verifies ntfy push пришёл из реального backup run).
**Atomic revert:** `ssh vitya@89.253.255.94 'sudo systemctl stop cron; sudo rm /etc/cron.d/vds-backup; sudo apt-get remove -y cron msmtp msmtp-mta; sudo rm -rf /etc/msmtprc /opt/stacks/backup /var/log/vds-backup'`
**Branch:** master
---