Версия: 2.0
Дата: 2025-11-12
Статус: Готова к использованию
Автоматическая система резервного копирования с хранением на Яндекс.Диске.
Преимущества:
- ✅ Автоматические ежедневные бекапы БД
- ✅ Еженедельные полные бекапы workspace
- ✅ Offsite хранение на Яндекс.Диске
- ✅ Автоматическая очистка старых бекапов
- ✅ Скрипты восстановления
- ✅ Принцип 3-2-1 (3 копии, 2 носителя, 1 offsite)
Расписание: Воскресенье 03:00 (автоматически)
Хранение: Локально + Яндекс.Диск
Retention: 30 дней
Расписание: Ежедневно 04:00 (после настройки)
Хранение: Локально + Яндекс.Диск
Retention: 30 дней
Перейти по ссылке:
https://oauth.yandex.ru/authorize?response_type=token&client_id=423de84129304ccab38c6e7c8c6ae1cf
Авторизоваться в Яндекс
Разрешить доступ
Скопировать access_token из URL:
https://oauth.yandex.ru/verification_code#access_token=ВАШТОКЕН&...
cd $WORKSPACE/scripts/backup
./setup-yandex-disk.sh "ВАШ_ТОКЕН"
Скрипт:
- Создаст конфиг rclone
- Проверит подключение
- Покажет информацию о Яндекс.Диске
./create-yandex-structure.sh
Создаст на Яндекс.Диске:
/backups-workspace/
├── dev-pro/ (Control Plane)
└── marketplace/
├── db/ (Ежедневные БД)
├── snapshots/ (Перед deploy)
└── full/ (Еженедельные полные)
Marketplace БД (ежедневно в 04:00):
crontab -e
Добавить:
# Marketplace DB backup
0 4 * * * $WORKSPACE/scripts/backup/backup-marketplace-db.sh >> /var/log/marketplace-backup.log 2>&1
DEV-PRO уже настроен (воскресенье 03:00) и теперь грузит на Яндекс.Диск автоматически!
# Тестовый backup marketplace БД
./backup-marketplace-db.sh
# Проверить что файлы на Яндекс.Диске
rclone ls yandex:/backups-workspace/marketplace/db/
# Проверить квоту
rclone about yandex:
Назначение: Первоначальная настройка rclone
Использование:
./setup-yandex-disk.sh "ВАШ_ТОКЕН"
Что делает:
- Создаёт конфиг rclone
- Проверяет подключение
- Показывает информацию о диске
Назначение: Создание структуры папок на Яндекс.Диске
Использование:
./create-yandex-structure.sh
Что делает:
- Создаёт все необходимые папки
- Показывает структуру
Назначение: Backup БД marketplace
Использование:
# Вручную
./backup-marketplace-db.sh
# Или через cron (рекомендуется)
0 4 * * * $WORKSPACE/scripts/backup/backup-marketplace-db.sh
Что делает:
1. Создаёт backup БД с компрессией (gzip)
2. Проверяет целостность
3. Загружает на Яндекс.Диск
4. Удаляет старые бекапы (>30 дней)
5. Логирует в /var/log/marketplace-backup.log
Вывод:
- Локально: /var/backups/marketplace/db/marketplace-db-YYYYMMDD_HHMMSS.db.gz
- Облако: yandex:/backups-workspace/marketplace/db/
Назначение: Ручная синхронизация локальных бекапов с Яндекс.Диском
Использование:
# Синхронизировать всё
./sync-to-yandex.sh all
# Только DEV-PRO
./sync-to-yandex.sh dev-pro
# Только Marketplace
./sync-to-yandex.sh marketplace
Что делает:
- Синхронизирует локальную папку с облаком
- Показывает прогресс
- Выводит статистику
Когда использовать:
- После ручных бекапов
- Для проверки синхронизации
- При проблемах с автоматической загрузкой
Назначение: Восстановление БД из backup
Использование:
# Из локального файла
./restore-marketplace-db.sh local /var/backups/marketplace/db/marketplace-db-20251112_040000.db.gz
# С Яндекс.Диска
./restore-marketplace-db.sh yandex marketplace-db-20251112_040000.db.gz
Что делает:
1. Создаёт safety backup текущей БД
2. Проверяет целостность backup
3. Останавливает приложение
4. Восстанавливает БД
5. Проверяет восстановленную БД
⚠️ ВНИМАНИЕ:
- Текущая БД будет заменена!
- Приложение будет остановлено!
- Создаётся safety backup в /tmp/
# Информация о диске (квота, использовано)
rclone about yandex:
# Список файлов
rclone ls yandex:/backups-workspace/
# Размер папки
rclone size yandex:/backups-workspace/marketplace/
# DEV-PRO
ls -lah /var/backups/dev-pro/
# Marketplace
ls -lah /var/backups/marketplace/db/
# DEV-PRO backup
tail -50 /var/log/dev-pro-backup.log
# Marketplace backup
tail -50 /var/log/marketplace-backup.log
crontab -l
Должно быть:
# DEV-PRO (уже есть)
0 3 * * 0 $WORKSPACE/infra/@infra-dev-pro/scripts/backup.sh >> /var/log/dev-pro-backup.log 2>&1
# Marketplace (добавить после настройки)
0 4 * * * $WORKSPACE/scripts/backup/backup-marketplace-db.sh >> /var/log/marketplace-backup.log 2>&1
Решение:
./setup-yandex-disk.sh "ВАШ_ТОКЕН"
Причина: Неверный или истёкший токен
Решение: Получить новый токен и переконфигурировать
Причина: Ограничения Яндекс.Диска или интернета
Решение:
- Проверить скорость интернета
- Бекапы загружаются в фоне ночью
- Можно настроить --bwlimit в rclone
Проверить:
# 1. Cron задача существует
crontab -l | grep backup
# 2. Скрипт исполняемый
ls -l $WORKSPACE/scripts/backup/*.sh
# 3. Логи cron
grep CRON /var/log/syslog | tail -20
DEV-PRO Control Plane:
- Архив: ~4-5 MB
- На Яндекс.Диске: ~4-5 MB
- Retention: 30 дней = ~120-150 MB
Marketplace БД:
- SQLite: ~400 KB
- Сжатый (gzip): ~100 KB
- Retention: 30 дней = ~3 MB
Итого на Яндекс.Диске:
- ~150-200 MB в месяц
- ~1.8 GB в год (при текущем размере)
Где хранится:
~/.config/rclone/rclone.conf
Права доступа:
chmod 600 ~/.config/rclone/rclone.conf
ВАЖНО:
- Токен = полный доступ к Яндекс.Диску
- Не коммитить в git
- Не показывать в логах
- Хранить только на сервере
Что НЕ бекапится:
- .env файлы (содержат секреты)
- Пароли в открытом виде
Что бекапится:
- SQLite БД (содержит хэши паролей)
- Код (публичный)
┌───────────────────────────────────────────────┐
│ ПОНЕДЕЛЬНИК - СУББОТА │
├───────────────────────────────────────────────┤
│ 04:00 Marketplace БД backup → Яндекс.Диск │
└───────────────────────────────────────────────┘
┌───────────────────────────────────────────────┐
│ ВОСКРЕСЕНЬЕ │
├───────────────────────────────────────────────┤
│ 03:00 DEV-PRO full backup → Яндекс.Диск │
│ 04:00 Marketplace БД backup → Яндекс.Диск │
└───────────────────────────────────────────────┘
Документация:
- YANDEX-DISK-SETUP.md - Детальная настройка
- rclone docs - Официальная документация rclone
Скрипты:
- $WORKSPACE/scripts/backup/ - Все скрипты бекапов
- $WORKSPACE/infra/@infra-dev-pro/solution/scripts/backup.sh - DEV-PRO backup
Логи:
- /var/log/dev-pro-backup.log - DEV-PRO
- /var/log/marketplace-backup.log - Marketplace
setup-yandex-disk.sh)create-yandex-structure.sh)backup-marketplace-db.sh)restore-marketplace-db.sh)Проблемы?
rclone about yandex:crontab -lСоздано: 2025-11-12
Автор: Claude Code
Версия: 2.0