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
This commit is contained in:
165
README_GIT.md
Normal file
165
README_GIT.md
Normal file
@@ -0,0 +1,165 @@
|
||||
# Git Backup System для CRM
|
||||
|
||||
## Обзор
|
||||
|
||||
Система автоматического бэкапа Git репозитория CRM проекта с возможностью загрузки на S3.
|
||||
|
||||
## Файлы
|
||||
|
||||
- `backup_to_s3.sh` - Основной скрипт бэкапа с загрузкой на S3
|
||||
- `daily_backup.sh` - Простой ежедневный бэкап
|
||||
- `.gitignore` - Исключения для Git
|
||||
- `backups/` - Папка для локальных бэкапов
|
||||
|
||||
## Использование
|
||||
|
||||
### Ручной бэкап
|
||||
```bash
|
||||
# Создать бэкап с описанием
|
||||
./backup_to_s3.sh "Описание изменений"
|
||||
|
||||
# Создать бэкап с автоматическим описанием
|
||||
./backup_to_s3.sh
|
||||
```
|
||||
|
||||
### Автоматический ежедневный бэкап
|
||||
```bash
|
||||
# Добавить в crontab для ежедневного бэкапа в 2:00
|
||||
crontab -e
|
||||
|
||||
# Добавить строку:
|
||||
0 2 * * * /var/www/fastuser/data/www/crm.clientright.ru/daily_backup.sh
|
||||
```
|
||||
|
||||
## Настройка S3
|
||||
|
||||
### 1. Установка AWS CLI
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt install awscli
|
||||
|
||||
# Или через pip
|
||||
pip install awscli
|
||||
```
|
||||
|
||||
### 2. Настройка credentials
|
||||
```bash
|
||||
aws configure
|
||||
# Ввести:
|
||||
# AWS Access Key ID: [ваш ключ]
|
||||
# AWS Secret Access Key: [ваш секрет]
|
||||
# Default region name: ru-central1
|
||||
# Default output format: json
|
||||
```
|
||||
|
||||
### 3. Создание S3 bucket
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
# Посмотреть историю
|
||||
git log --oneline
|
||||
|
||||
# Откатиться к предыдущей версии
|
||||
git reset --hard HEAD~1
|
||||
|
||||
# Откатиться к конкретному коммиту
|
||||
git reset --hard <commit-hash>
|
||||
```
|
||||
|
||||
### Из архива
|
||||
```bash
|
||||
# Скачать с S3
|
||||
aws s3 cp s3://crm-backups/crm-git-backup/crm_backup_20240926_104500.tar.gz .
|
||||
|
||||
# Распаковать
|
||||
tar -xzf crm_backup_20240926_104500.tar.gz
|
||||
```
|
||||
|
||||
## Мониторинг
|
||||
|
||||
### Проверка статуса
|
||||
```bash
|
||||
# Статус Git
|
||||
git status
|
||||
|
||||
# Последние коммиты
|
||||
git log --oneline -10
|
||||
|
||||
# Размер репозитория
|
||||
du -sh .git
|
||||
```
|
||||
|
||||
### Логи
|
||||
```bash
|
||||
# Логи ежедневного бэкапа
|
||||
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"
|
||||
```bash
|
||||
sudo chown -R www-data:www-data .
|
||||
sudo chmod -R 755 .
|
||||
```
|
||||
|
||||
### Проблема: "AWS CLI not found"
|
||||
```bash
|
||||
# Установить 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"
|
||||
```bash
|
||||
# Создать bucket
|
||||
aws s3 mb s3://crm-backups --region ru-central1
|
||||
```
|
||||
|
||||
## Контакты
|
||||
|
||||
При проблемах обращайтесь к Фёдору.
|
||||
Reference in New Issue
Block a user