infra/@backup.service/CLAUDE.md

@backup.service — Система резервного копирования

Версия: 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 с нуля

ИСПОЛЬЗОВАНИЕ

Critical (CLAUDE.md, settings)

cd $WORKSPACE/infra/@backup.service/scripts

# Создать архив критичных файлов
./backup-critical.sh

# Создать GOLDEN (эталонную копию)
./backup-critical.sh golden

Git бекап

./git-backup.sh full     # Полный bundle
./git-backup.sh incr     # Инкремент
./git-backup.sh status   # Статус

Restic бекапы

./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 # Полное восстановление

РАСПИСАНИЕ (cron)

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 Очистка старых снапшотов

ХРАНИЛИЩЕ S3

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