Версия: 3.0.0
Дата: 2025-12-18
┌─────────────────────────────────────────────────────────────────┐
│ beget-s3 (DATASPACE) beget-infra (BACKUP) │
│ /mnt/beget-s3/ /mnt/beget-infra/ │
│ └── projects/ ├── _settings/ │
│ └── pirotehnika/ │ ├── AGENT.md │
│ └── _shared/ │ └── recovery/ │
│ └── dev-pro/ │
│ ├── INFO.md │
│ ├── backup/ ← АКТИВНЫЕ │
│ │ ├── critical/ │
│ │ ├── golden/ │
│ │ ├── postgres/ │
│ │ ├── simple/ │
│ │ ├── git/ │
│ │ └── restic/ │
│ └── archive/ ← СТАРЫЕ │
└─────────────────────────────────────────────────────────────────┘
Master: 0 * * * * backup-master.sh
| Время | Что | Скрипт |
|---|---|---|
| */6ч (0,6,12,18) | Critical | backup-critical.sh |
| */4ч | PostgreSQL | backup-postgres.sh |
| 05:00 | Simple tar.gz | simple-backup.sh |
| Вс 04:00 | Git full | git-backup.sh full |
| Пн-Сб 05:00 | Git incr | git-backup.sh incr |
| */6ч | Restic | restic-backup.sh all |
| Вс 03:00 | Restic prune | restic-backup.sh prune |
cd $WORKSPACE/infra/@backup.service/scripts
# Critical (CLAUDE.md, settings)
./backup-critical.sh
# Создать GOLDEN копию
./backup-critical.sh golden
# PostgreSQL
./backup-postgres.sh
# Git бекап
./git-backup.sh full # полный
./git-backup.sh incr # инкремент
# Restic полный
./restic-backup.sh all
# Simple tar.gz
./simple-backup.sh
# Последние бекапы
ls -lh /mnt/beget-infra/dev-pro/backup/critical/ | tail -5
ls -lh /mnt/beget-infra/dev-pro/backup/simple/ | tail -3
ls -lh /mnt/beget-infra/dev-pro/backup/git/ | tail -5
# Restic снапшоты
cd $WORKSPACE/infra/@backup.service/scripts
source ../.env
restic snapshots --latest 5
# Логи
tail -20 /var/log/backup-master.log
tail -20 /var/log/backup-critical.log
tail -20 /var/log/git-backup.log
cd $WORKSPACE/infra/@backup.service/scripts
./restore-claude.sh
# Меню:
# 1. Восстановить из GOLDEN
# 2. Выбрать архив
# 3. Восстановить latest
# 4. NPM reinstall
# 5. Полное восстановление
cd /mnt/beget-infra/dev-pro/backup/git/
# Найти последнюю неделю
ls -d week-* | sort -r | head -1
# Восстановить
git clone week-2025-51/full.bundle /opt/claude-workspace-restored
# Применить инкременты
cd /opt/claude-workspace-restored
for f in ../week-2025-51/incr-*.bundle; do
[ -f "$f" ] && git pull "$f" master
done
# Список архивов
ls -lh /mnt/beget-infra/dev-pro/backup/simple/
# Распаковать в /tmp
tar -xzf /mnt/beget-infra/dev-pro/backup/simple/workspace-*.tar.gz -C /tmp/
cd $WORKSPACE/infra/@backup.service/scripts
# Список снапшотов
./restic-restore.sh list
# Восстановить workspace
./restic-restore.sh workspace
# Полное восстановление
./restic-restore.sh full
Что: CLAUDE.md, start.sh, index.yaml, settings.json, claude.json, history.jsonl
Где: /mnt/beget-infra/dev-pro/backup/critical/YYYY-MM-DD_HHMM.tar.gz
Ротация:
- Сегодня: все копии
- Вчера: 1 копия
- 7-30 дней: воскресенья
- 30-365 дней: конец месяца
Что: Эталонная копия рабочей конфигурации
Когда создавать:
- После успешной настройки
- Перед крупными изменениями
./backup-critical.sh golden
Что: Git репозиторий workspace
Стратегия:
- Воскресенье 04:00: полный bundle (~700MB)
- Пн-Сб 05:00: инкременты (~2-5MB)
Где: /mnt/beget-infra/dev-pro/backup/git/week-YYYY-WW/
Что: Дампы всех баз данных
Где: /mnt/beget-infra/dev-pro/backup/postgres/DBNAME_YYYY-MM-DD_HHMM.sql
Что: Весь $WORKSPACE
Где: /mnt/beget-infra/dev-pro/backup/simple/workspace-YYYY-MM-DD_HHMM.tar.gz
Размер: ~1.2GB
Что: Инкрементальные бекапы workspace, postgres, docker volumes
Где: S3 direct → beget-infra:dev-pro/backup/restic/
Retention: 24 hourly, 7 daily, 4 weekly, 6 monthly
# /etc/environment
WORKSPACE=/opt/claude-workspace
DATASPACE=/mnt/beget-s3
$WORKSPACE/infra/@backup.service/.env
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
RESTIC_REPOSITORY=s3:https://s3.ru1.storage.beget.cloud/fe2c1d30dc11-bs/dev-pro/backup/restic
RESTIC_PASSWORD=...
# 1. Примонтировать S3 (infra bucket)
rclone mount beget-infra:fe2c1d30dc11-bs /mnt/beget-infra --vfs-cache-mode full --daemon
# 2. Запустить recovery
/mnt/beget-infra/_settings/recovery/scripts/recovery-levels.sh
# Или вручную:
./bootstrap-recovery.sh
Подробнее: docs/DISASTER-RECOVERY.md
# S3 mounts
mountpoint /mnt/beget-s3 && echo "DATASPACE OK"
mountpoint /mnt/beget-infra && echo "BACKUP OK"
# Размеры бекапов
du -sh /mnt/beget-infra/dev-pro/backup/*/
# Restic check
source $WORKSPACE/infra/@backup.service/.env
restic check
| Скрипт | Назначение |
|---|---|
backup-master.sh |
Master cron — запускает всё |
backup-critical.sh |
Critical + GOLDEN |
backup-postgres.sh |
PostgreSQL дампы |
git-backup.sh |
Git bundle бекапы |
simple-backup.sh |
Workspace tar.gz |
restic-backup.sh |
Restic операции |
restic-restore.sh |
Восстановление из Restic |
restore-claude.sh |
Меню восстановления Claude |
bootstrap-recovery.sh |
Disaster recovery |
/mnt/beget-infra/dev-pro/archive//var/log/backup-*.logВерсия: 3.0.0