Files
crm.clientright.ru/README_GIT.md
Fedor b162eddf0a Add Git backup system with S3 integration
- backup_to_s3.sh: Main backup script with S3 upload
- daily_backup.sh: Simple daily backup script
- README_GIT.md: Complete documentation
- .gitignore: Exclude sensitive files and cache
2025-09-26 10:46:34 +03:00

4.0 KiB
Raw Blame History

Git Backup System для CRM

Обзор

Система автоматического бэкапа Git репозитория CRM проекта с возможностью загрузки на S3.

Файлы

  • backup_to_s3.sh - Основной скрипт бэкапа с загрузкой на S3
  • daily_backup.sh - Простой ежедневный бэкап
  • .gitignore - Исключения для Git
  • backups/ - Папка для локальных бэкапов

Использование

Ручной бэкап

# Создать бэкап с описанием
./backup_to_s3.sh "Описание изменений"

# Создать бэкап с автоматическим описанием
./backup_to_s3.sh

Автоматический ежедневный бэкап

# Добавить в crontab для ежедневного бэкапа в 2:00
crontab -e

# Добавить строку:
0 2 * * * /var/www/fastuser/data/www/crm.clientright.ru/daily_backup.sh

Настройка S3

1. Установка AWS CLI

# Ubuntu/Debian
sudo apt install awscli

# Или через pip
pip install awscli

2. Настройка credentials

aws configure
# Ввести:
# AWS Access Key ID: [ваш ключ]
# AWS Secret Access Key: [ваш секрет]
# Default region name: ru-central1
# Default output format: json

3. Создание S3 bucket

aws s3 mb s3://crm-backups --region ru-central1

Структура бэкапов

Git коммиты

  • Каждый бэкап создает коммит с временной меткой
  • История изменений сохраняется в Git

Архивы

  • Формат: crm_backup_YYYYMMDD_HHMMSS.tar.gz
  • Исключения: .git, cache, logs, test
  • Размер: обычно 50-100MB

S3 структура

s3://crm-backups/
├── crm-git-backup/
│   ├── crm_backup_20240926_104500.tar.gz
│   ├── crm_backup_20240926_120000.tar.gz
│   └── ...

Восстановление

Из Git

# Посмотреть историю
git log --oneline

# Откатиться к предыдущей версии
git reset --hard HEAD~1

# Откатиться к конкретному коммиту
git reset --hard <commit-hash>

Из архива

# Скачать с S3
aws s3 cp s3://crm-backups/crm-git-backup/crm_backup_20240926_104500.tar.gz .

# Распаковать
tar -xzf crm_backup_20240926_104500.tar.gz

Мониторинг

Проверка статуса

# Статус Git
git status

# Последние коммиты
git log --oneline -10

# Размер репозитория
du -sh .git

Логи

# Логи ежедневного бэкапа
tail -f /var/log/cron

# Или добавить логирование в скрипт
./daily_backup.sh >> /var/log/crm_backup.log 2>&1

Безопасность

Исключенные файлы

  • config.inc.php - конфигурация БД
  • .env - переменные окружения
  • cache/ - кеш файлы
  • logs/ - логи
  • *.log - все лог файлы

Рекомендации

  1. Регулярно проверяйте размер бэкапов
  2. Настройте lifecycle policy для S3
  3. Используйте разные bucket для разных окружений
  4. Шифруйте sensitive данные

Troubleshooting

Проблема: "Permission denied"

sudo chown -R www-data:www-data .
sudo chmod -R 755 .

Проблема: "AWS CLI not found"

# Установить AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Проблема: "Bucket does not exist"

# Создать bucket
aws s3 mb s3://crm-backups --region ru-central1

Контакты

При проблемах обращайтесь к Фёдору.