Перейти к содержимому

Резервное копирование

Минимально необходимый бэкап GetOLT — это снапшот MySQL, каталог лицензии и файл /opt/getolt/.env. Раньше .env считался восстановимым при переустановке — теперь это не так: в нём лежит GETOLT_SECRET_KEY, которым шифруются и пароли источников обогащения, и учётные данные подключения к самим OLT (пароль, приватный SSH-ключ). При переустановке генерируется новый ключ — сохранённые пароли источников обогащения станут нерасшифровываемыми, а расшифровать пароли и ключи доступа ко всему парку OLT будет невозможно.

Что бэкапить

АртефактЧто внутриКритичность
Дамп БД getolt_dbOLT, ONU, история сигналов, конфиги, журналкритично
/opt/getolt/license/JWT-файл лицензии (привязан к host_id)важно (без него экземпляр перерегистрируется как новый — отсчёт лицензии начинается заново)
/opt/getolt/.envпароли MySQL, admin-пароль, host_id, GETOLT_SECRET_KEYкритичноGETOLT_SECRET_KEY шифрует пароли источников обогащения и учётные данные подключения к OLT (пароль, приватный SSH-ключ); при потере ключа они не восстановимы, а доступ к парку OLT будет потерян
/opt/getolt/docker-compose.ymlконфиг composeминорно (скачивается заново при install.sh)

Снапшот БД

Окно терминала
# Узнать пароль root MySQL из .env
MYSQL_ROOT_PASSWORD=$(grep '^MYSQL_ROOT_PASSWORD=' /opt/getolt/.env | cut -d= -f2-)
# Дамп с консистентным снимком (online, без блокировок)
docker compose -f /opt/getolt/docker-compose.yml exec -T mysql \
mysqldump --single-transaction --routines --triggers \
-uroot -p"$MYSQL_ROOT_PASSWORD" getolt_db \
| gzip > /backup/getolt-$(date +%F).sql.gz

Рекомендуется крутить дампы ежедневно с retention 7–30 дней (через cron / systemd-timer на хосте).

Снимок лицензии

Окно терминала
tar czf /backup/getolt-license-$(date +%F).tgz /opt/getolt/license/

Меняется редко — снимать вместе с .env достаточно при каждом дампе БД.

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

На чистом VPS:

Окно терминала
# 1. Установка (поднимется пустая БД, выдастся новый license.jwt — пере-перезапишем)
curl -A "getolt-installer/1.0" -fsSL https://get.getolt.online/install.sh | sudo bash
# 2. Остановить
cd /opt/getolt && docker compose down
# 3. Положить .env, лицензию, разлить дамп БД
cp /backup/.env /opt/getolt/.env
tar xzf /backup/getolt-license-*.tgz -C /
# 4. Поднять только MySQL и разлить дамп
docker compose up -d mysql
MYSQL_ROOT_PASSWORD=$(grep '^MYSQL_ROOT_PASSWORD=' /opt/getolt/.env | cut -d= -f2-)
zcat /backup/getolt-*.sql.gz | \
docker compose exec -T mysql mysql -uroot -p"$MYSQL_ROOT_PASSWORD" getolt_db
# 5. Запустить приложение
docker compose up -d

Если хост-машина другая (миграция на новый VPS) и host_id сменился — license-server при следующем heartbeat увидит mismatch и сообщит. Свяжитесь с support@getolt.online или в Telegram @getolt_pub — пере-выдадим JWT для нового host_id.

Что дальше

Нашли ошибку или нужно что-то дополнить? Напишите нам или в Telegram @getolt_pub.

Разработка: gmasich.ru

Политика конфиденциальности · Пользовательское соглашение