Версия: 2.0.0
Дата: 2025-12-06
# Если что-то сломалось — запусти это:
/root/fix-everything.sh
Скрипт покажет меню:
- Полное восстановление
- Только Claude Code credentials
- Только SSH ключи
- Только Workspace
- Только Crontab
- Создать бэкап сейчас
DEV-PRO (91.218.142.168)
│
▼
┌─────────────────────────────────────────────────────────────┐
│ $WORKSPACE/ │
│ └── .git/ ← L1: Локальная история (каждый коммит) │
└─────────────────────────────────────────────────────────────┘
│
│ cron каждый час (:30)
▼
┌─────────────────────────────────────────────────────────────┐
│ /mnt/beget-s3/_backup/ │
│ └── *.bundle ← L2: Beget S3 (24 последних) │
└─────────────────────────────────────────────────────────────┘
│
│ rclone sync на ПК
▼
┌─────────────────────────────────────────────────────────────┐
│ Локальный ПК │
│ └── *.bundle ← L3: Офлайн копия │
└─────────────────────────────────────────────────────────────┘
| Уровень | Что | Где | Частота | Хранение |
|---|---|---|---|---|
| L1 | Git commits | Локально | Каждое изменение | Вся история |
| L2 | Bundle backup | Beget S3 | Каждый час | 24 последних |
| L3 | Офлайн копия | Локальный ПК | По sync | По желанию |
# Быстрый бэкап каждый час в :30
30 * * * * $WORKSPACE/infra/@dev-pro.server/solution/scripts/quick-backup.sh
# Ежедневный полный бэкап в 04:00
0 4 * * * $WORKSPACE/infra/@dev-pro.server/solution/scripts/git-backup-s3.sh
# 1. Проверить текущее состояние
git status
# 2. Если есть незакоммиченные изменения — закоммитить
git add -A && git commit -m "описание"
# Часто коммитить (каждое логическое изменение)
git add -A && git commit -m "feat: add feature X"
# Для критичных файлов — использовать safe-edit
./infra/@dev-pro.server/solution/scripts/safe-edit.sh path/to/file "описание"
# Проверить что всё закоммичено
git status
# При необходимости — принудительный бэкап
./infra/@dev-pro.server/solution/scripts/quick-backup.sh "manual: end of session"
# К предыдущему коммиту
git checkout HEAD~1 -- path/to/file
# К конкретному коммиту
git checkout abc123 -- path/to/file
# Из safe-edit бэкапа
cp $WORKSPACE/.edit-backup/FILE_TIMESTAMP path/to/file
# К предыдущему состоянию (ОСТОРОЖНО!)
git reset --hard HEAD~5
# К конкретному коммиту
git reset --hard abc123
# Список бэкапов
ls -lht /mnt/beget-s3/_backup/*.bundle
# Клонирование из bundle
git clone /mnt/beget-s3/_backup/workspace-2025-12-06.bundle restored-workspace
$WORKSPACE/
├── .git/ ← Git репозиторий
├── .edit-log/ ← Лог редактирований
│ └── edit.log
├── .edit-backup/ ← Бэкапы файлов перед редактированием
│ └── file_name_TIMESTAMP
└── ...
/mnt/beget-s3/
├── _backup/ ← Bundle бэкапы
│ ├── workspace-YYYY-MM-DD_HHMM.bundle
│ └── last-backup.txt
└── git-backup/ ← Полный git clone (legacy)
| Скрипт | Назначение |
|---|---|
quick-backup.sh |
Быстрый коммит + bundle в S3 |
git-backup-s3.sh |
Полный ежедневный бэкап |
safe-edit.sh |
Бэкап файла перед редактированием |
disaster-recovery/backup-critical.sh |
Полный бэкап credentials + SSH + workspace |
disaster-recovery/restore.sh |
Восстановление из бэкапа |
Путь: $WORKSPACE/infra/@dev-pro.server/solution/scripts/
Утилита восстановления: /root/fix-everything.sh
На удалённых серверах (DEV-PROD-RF и др.) код деплоится через Docker/git clone.
Изменения НЕ делаются напрямую на сервере.
# 1. SSH на сервер
ssh root@45.144.177.147
# 2. Сделать бэкап вручную
cp file.conf file.conf.bak
# 3. Внести изменения
nano file.conf
# 4. Перенести изменения на DEV-PRO для коммита
scp root@45.144.177.147:/path/file.conf $WORKSPACE/path/
| Лог | Путь |
|---|---|
| Quick backup | /var/log/quick-backup.log |
| Daily backup | /var/log/git-backup-s3.log |
| Edit log | $WORKSPACE/.edit-log/edit.log |
Содержит всё необходимое для восстановления DEV-PRO с нуля:
| Компонент | Что | Размер |
|---|---|---|
| Claude credentials | ~/.claude/.credentials.json |
~1KB |
| SSH ключи | ~/.ssh/* |
~50KB |
| Crontab | Задания автоматизации | ~1KB |
| Workspace | Git bundle всего кода | ~680MB |
Хранение: /mnt/beget-s3/_backup/critical/ (7 последних)
Создание: Вручную или через /root/fix-everything.sh → b
Версия: 2.0.0