Версия: 3.0.0
Дата: 2025-12-18
Тип: Инфраструктурный сервис
Централизованная система бекапирования и disaster recovery.
┌─────────────────────────────────────────────────────────────────┐
│ BACKUP SERVICE v3.0 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ИСТОЧНИКИ: ХРАНИЛИЩЕ (beget-infra): │
│ ├── $WORKSPACE /mnt/beget-infra/dev-pro/ │
│ ├── ~/.claude/ ├── backup/ ← АКТИВНЫЕ │
│ ├── /var/lib/docker/volumes │ ├── critical/ │
│ ├── /root/.ssh │ ├── golden/ │
│ └── PostgreSQL (docker) │ ├── postgres/ │
│ │ ├── simple/ │
│ │ ├── git/ │
│ │ └── restic/ │
│ └── archive/ ← СТАРЫЕ │
│ │
│ РАСПИСАНИЕ (backup-master.sh): │
│ ├── */6h Critical → claude, settings, history │
│ ├── */4h PostgreSQL → nocodb, все базы │
│ ├── 05:00 Simple → workspace tar.gz │
│ ├── Вс 04:00 Git full → полный bundle │
│ ├── Пн-Сб 05:00 Git incr → инкременты │
│ ├── */6h Restic → инкрементальные │
│ └── Вс 03:00 Prune → очистка старых │
│ │
└─────────────────────────────────────────────────────────────────┘
| Скрипт | Назначение |
|---|---|
backup-master.sh |
Master cron — запускает все бэкапы |
backup-critical.sh |
Критичные файлы (CLAUDE.md, settings) |
backup-postgres.sh |
Бекап PostgreSQL баз |
git-backup.sh |
Git bundle бекапы |
restic-backup.sh |
Полный бекап через Restic |
restic-restore.sh |
Восстановление из Restic |
restore-claude.sh |
Меню восстановления Claude |
simple-backup.sh |
Простой tar.gz workspace |
bootstrap-recovery.sh |
Disaster recovery с нуля |
cd $WORKSPACE/infra/@backup.service/scripts
# Создать архив критичных файлов
./backup-critical.sh
# Создать GOLDEN (эталонную копию)
./backup-critical.sh golden
./git-backup.sh full # Полный bundle
./git-backup.sh incr # Инкремент
./git-backup.sh status # Статус
./restic-backup.sh all # Полный бекап
./restic-backup.sh workspace # Только workspace
./restic-backup.sh postgres # Только PostgreSQL
./restic-backup.sh prune # Очистка старых
./restic-backup.sh stats # Статистика
./restore-claude.sh # Интерактивное меню
./restic-restore.sh list # Список снапшотов
./restic-restore.sh full # Полное восстановление
Master cron: 0 * * * * backup-master.sh
| Время | Скрипт | Действие |
|---|---|---|
| */6ч (0,6,12,18) | backup-critical.sh | CLAUDE.md, settings, history |
| */4ч | backup-postgres.sh | PostgreSQL дампы |
| 05:00 | simple-backup.sh | Workspace tar.gz |
| Вс 04:00 | git-backup.sh full | Git полный bundle |
| Пн-Сб 05:00 | git-backup.sh incr | Git инкременты |
| */6ч | restic-backup.sh all | Инкрементальные бекапы |
| Вс 03:00 | restic-backup.sh prune | Очистка старых снапшотов |
Bucket: beget-infra (fe2c1d30dc11-bs)
Mount: /mnt/beget-infra
Сервис: infra-mount.service (enabled, автостарт)
| Папка | Назначение | Размер |
|---|---|---|
dev-pro/backup/critical/ |
Архивы критичных файлов | ~75MB/год |
dev-pro/backup/golden/ |
Эталонные копии (ручные) | ~3MB |
dev-pro/backup/simple/ |
Workspace tar.gz (daily) | ~2GB×7 |
dev-pro/backup/postgres/ |
PostgreSQL дампы | ~100MB×7 |
dev-pro/backup/git/ |
Git bundles (weekly) | ~800MB |
dev-pro/backup/restic/ |
Restic repository | ~5GB |
dev-pro/archive/ |
Старые бекапы | ~10GB |
# Логи (все в /var/log/)
tail -f /var/log/backup-master.log # Master cron
tail -f /var/log/backup-critical.log # Critical
tail -f /var/log/backup-postgres.log # PostgreSQL
tail -f /var/log/git-backup.log # Git
tail -f /var/log/restic-backup.log # Restic
# Статус хранилища
ls -lh /mnt/beget-infra/dev-pro/backup/
du -sh /mnt/beget-infra/dev-pro/backup/*/
# Restic снапшоты
source .env && restic snapshots
# GOLDEN статус
ls -la /mnt/beget-infra/dev-pro/backup/golden/
@backup.service/
├── CLAUDE.md ← Этот файл
├── BACKUP-GUIDE.md ← Подробное руководство
├── .env ← Credentials (SECRET!)
├── scripts/
│ ├── backup-master.sh ← Master cron
│ ├── backup-critical.sh ← Critical + GOLDEN
│ ├── backup-postgres.sh ← PostgreSQL
│ ├── git-backup.sh ← Git bundles
│ ├── simple-backup.sh ← Workspace tar.gz
│ ├── restic-backup.sh ← Restic бекап
│ ├── restic-restore.sh ← Restic восстановление
│ ├── restore-claude.sh ← Меню восстановления
│ └── bootstrap-recovery.sh ← Disaster recovery
└── docs/
└── DISASTER-RECOVERY.md ← Инструкция DR
Критические данные (сохранить отдельно!):
- .env — содержит S3 и Restic credentials
- Restic password — без него данные недоступны
Версия: 3.0.0