Update file 04-network.md
This commit is contained in:
parent
529fe52832
commit
f53c747a54
@ -179,28 +179,126 @@ environment:
|
||||
|
||||
---
|
||||
|
||||
## Бэкапы конфигурации
|
||||
## 🔄 Бэкапы и восстановление
|
||||
|
||||
### OlimpVPN (3X-UI)
|
||||
### Автоматические бэкапы
|
||||
|
||||
Автоматические еженедельные бэкапы на Nextcloud:
|
||||
- **Скрипт**: `/opt/3x-ui/backup.sh`
|
||||
- **Cron**: `0 3 * * 0` (воскресенье, 03:00)
|
||||
- **Хранилище**: `nc.zailon.ru/VPN_Backups/3x-ui/`
|
||||
- **Состав**: база данных, сертификаты, docker-compose.yml
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| **Скрипт** | `/opt/3x-ui/backup.sh` |
|
||||
| **Расписание** | `0 3 * * 0` (воскресенье, 03:00 +05) |
|
||||
| **Локальное хранилище** | `/opt/3x-ui/backups/` |
|
||||
| **Nextcloud** | `nc.zailon.ru/Admin/Домашний Сервер/OlimpBackup/OlimpVPN/` |
|
||||
| **Состав бэкапа** | `db/`, `cert/`, `docker-compose.yml` |
|
||||
| **Хранение локально** | 30 дней |
|
||||
| **Таймзона** | `Asia/Yekaterinburg (+05)` |
|
||||
|
||||
```bash
|
||||
# Ручной бэкап
|
||||
cd /opt/3x-ui
|
||||
tar -czf backup_$(date +%Y%m%d).tar.gz db/ cert/ docker-compose.yml
|
||||
### Ручной запуск бэкапа
|
||||
|
||||
# Восстановление
|
||||
docker compose down
|
||||
tar -xzf backup_*.tar.gz -C /opt/3x-ui/
|
||||
&&&bash
|
||||
/opt/3x-ui/backup.sh
|
||||
&&&
|
||||
|
||||
### Восстановление из бэкапа
|
||||
|
||||
&&&bash
|
||||
# 1. Скачать последний бэкап с Nextcloud
|
||||
LATEST=$(curl -s -u "Zailon:TOKEN" \
|
||||
"https://nc.zailon.ru/remote.php/dav/files/Zailon/Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/" \
|
||||
-X PROPFIND -H "Depth: 1" | \
|
||||
grep -oP '3x-ui_backup_\d+_\d+\.tar\.gz' | tail -1)
|
||||
|
||||
curl -s -u "Zailon:TOKEN" \
|
||||
"https://nc.zailon.ru/remote.php/dav/files/Zailon/Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/${LATEST}" \
|
||||
-o /tmp/restore.tar.gz
|
||||
|
||||
# 2. Остановить сервис
|
||||
cd /opt/3x-ui && docker compose down
|
||||
|
||||
# 3. (Опционально) Создать резервную копию текущей конфигурации
|
||||
tar -czf /opt/3x-ui/pre_restore_$(date +%Y%m%d).tar.gz -C /opt/3x-ui db cert docker-compose.yml
|
||||
|
||||
# 4. Восстановить файлы
|
||||
tar -xzf /tmp/restore.tar.gz -C /opt/3x-ui/
|
||||
chown -R root:root /opt/3x-ui/
|
||||
chmod 600 /opt/3x-ui/cert/private.key
|
||||
|
||||
# 5. Запустить сервис
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
> **Важно**: токены и пароли хранятся отдельно, не включаются в бэкап.
|
||||
# 6. Проверить статус
|
||||
docker ps | grep 3xui
|
||||
docker logs 3xui_app --tail 20
|
||||
&&&
|
||||
|
||||
### Мониторинг бэкапов
|
||||
|
||||
&&&bash
|
||||
# Логи бэкапа
|
||||
tail -f /var/log/3x-ui-backup.log
|
||||
|
||||
# Локальные бэкапы
|
||||
ls -lh /opt/3x-ui/backups/
|
||||
|
||||
# Проверка на Nextcloud (WebDAV)
|
||||
curl -u "Zailon:TOKEN" \
|
||||
"https://nc.zailon.ru/remote.php/dav/files/Zailon/Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/" \
|
||||
-X PROPFIND -H "Depth: 1" | grep -oP '<d:href>\K[^<]+' | tail -5
|
||||
|
||||
# Проверка crontab
|
||||
crontab -l
|
||||
|
||||
# Проверка таймзоны
|
||||
timedatectl | grep "Time zone"
|
||||
&&&
|
||||
|
||||
### Решение проблем
|
||||
|
||||
#### Ошибка 401 Unauthorized
|
||||
&&&bash
|
||||
# Пересоздать токен приложения в Nextcloud:
|
||||
# Настройки → Безопасность → Приложения паролей → Создать новый
|
||||
# Обновить NEXTCLOUD_PASS в /opt/3x-ui/backup.sh
|
||||
&&&
|
||||
|
||||
#### Ошибка 404 Not Found
|
||||
&&&bash
|
||||
# Проверить путь к папке (регистр и пробелы важны!)
|
||||
# Правильный формат: /Admin/Домашний%20Сервер/OlimpBackup/OlimpVPN/
|
||||
&&&
|
||||
|
||||
#### Бэкап не создаётся
|
||||
&&&bash
|
||||
# Проверить права на запись
|
||||
ls -la /opt/3x-ui/backups/
|
||||
|
||||
# Проверить место на диске
|
||||
df -h /opt/3x-ui
|
||||
|
||||
# Проверить логи cron
|
||||
journalctl -u cron -n 20
|
||||
&&&
|
||||
|
||||
#### Время в логах неверное
|
||||
&&&bash
|
||||
# Установить таймзону
|
||||
timedatectl set-timezone Asia/Yekaterinburg
|
||||
|
||||
# Перезапустить cron
|
||||
systemctl restart cron
|
||||
&&&
|
||||
|
||||
### Чеклист обслуживания
|
||||
|
||||
- [ ] **Еженедельно**: Проверять `/var/log/3x-ui-backup.log` после воскресенья
|
||||
- [ ] **Ежемесячно**: Убедиться что бэкапы есть на Nextcloud
|
||||
- [ ] **Ежеквартально**: Протестировать восстановление на тестовом окружении
|
||||
- [ ] **При смене пароля Nextcloud**: Обновить `NEXTCLOUD_PASS` в скрипте
|
||||
- [ ] **Перед обновлением 3X-UI**: Сделать ручной бэкап
|
||||
|
||||
---
|
||||
|
||||
> ⚠️ **Важно**: Токен приложения `2Fpz6-ocGSz-rRbaZ-efoa3-EDATz` имеет доступ только к WebDAV. Никогда не используйте основной пароль аккаунта в скриптах!
|
||||
|
||||
---
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user