# System Backup Script

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

### Запуск бэкапа
```bash
cd /Volumes/SSD/Aimpress_Cloud_Prod
./system-backup.sh
```

Скрипт создаст полную копию сервера в `system-backup/`.

### Что бэкапится
- Все файлы с сервера (кроме исключенных)
- Конфигурации всех сервисов
- Системные файлы
- Docker volumes (частично)

### Что исключено
- `/proc`, `/sys`, `/dev` - системные виртуальные FS
- `/tmp`, `/var/tmp` - временные файлы
- Swap файлы
- Docker runtime кэш
- Старые логи (*.log.gz, *.old)
- Файлы Syncthing (.stfolder, .stversions)

### Логи
Логи сохраняются в:
```
system-backup/backup-YYYYMMDD-HHMMSS.log
```

Хранятся последние 30 логов.

### Время выполнения
- Первый запуск: 2-4 часа (полная копия ~44GB)
- Последующие: 10-30 минут (только изменения)

### Требования
- **Место на диске:** Минимум 50GB свободно
- **Сеть:** Стабильное соединение с сервером
- **SSH:** Доступ к ubuntu@51.89.231.46

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

### Полное восстановление сервера
```bash
# ОСТОРОЖНО! Это перезапишет все файлы на сервере!
rsync -avz --progress \
  /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/ \
  ubuntu@51.89.231.46:/
```

### Восстановление конкретной директории
```bash
# Пример: восстановить /opt/02-core
rsync -avz --progress \
  /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/opt/02-core/ \
  ubuntu@51.89.231.46:/opt/02-core/
```

### Восстановление конкретного файла
```bash
# Пример: восстановить конфиг traefik
scp /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/opt/00-infrastructure/traefik/traefik.yml \
  ubuntu@51.89.231.46:/opt/00-infrastructure/traefik/traefik.yml
```

## Расписание

Рекомендуется запускать:
- **Еженедельно** - для регулярного бэкапа
- **Перед крупными изменениями** - для safety net
- **После важных обновлений** - для сохранения рабочего состояния

## Автоматизация (опционально)

### Создать cron job для еженедельного бэкапа:
```bash
crontab -e
```

Добавить:
```
# Weekly full system backup (every Sunday at 3 AM)
0 3 * * 0 /Volumes/SSD/Aimpress_Cloud_Prod/system-backup.sh >> /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/cron.log 2>&1
```

## Мониторинг

### Проверить последний бэкап:
```bash
cat /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/.backup-metadata.txt
```

### Посмотреть размер бэкапа:
```bash
du -sh /Volumes/SSD/Aimpress_Cloud_Prod/system-backup
```

### Проверить последний лог:
```bash
ls -t /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/backup-*.log | head -1 | xargs tail -50
```

## Troubleshooting

### "Cannot connect to server"
Проверьте:
- SSH доступ: `ssh ubuntu@51.89.231.46`
- Интернет соединение
- Firewall правила

### "Not enough disk space"
Освободите место:
```bash
# Проверить место
df -h /Volumes/SSD

# Удалить старые бэкапы если нужно
rm -rf /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/some-old-backup
```

### "Rsync failed"
Проверьте лог файл для деталей:
```bash
tail -100 /Volumes/SSD/Aimpress_Cloud_Prod/system-backup/backup-*.log
```

## Важно

⚠️ **Бэкап НЕ заменяет:**
- Syncthing (для реального времени)
- Git (для версионного контроля)

⚠️ **Бэкап дополняет систему:**
- Полное snapshot системы
- Для disaster recovery
- Для восстановления после сбоя

## См. также

- [README.md](README.md) - Общая документация
- [.claude/workflow.md](.claude/workflow.md) - Рабочий процесс
- [opt/05-backups/SCRIPTS-REGISTRY.md](opt/05-backups/SCRIPTS-REGISTRY.md) - Другие скрипты бэкапа
