Set up three-tier synchronization: Syncthing (real-time), GitHub (version control), rsync (disaster recovery). Includes complete documentation for future Claude sessions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
145 lines
4.5 KiB
Markdown
145 lines
4.5 KiB
Markdown
# 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) - Другие скрипты бэкапа
|