Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
автоматическое резервное копирование, UniFi Network
 
Привет, я собираюсь начать работу с контроллером Unifi Cloud. Хочу добавить пару клиентов (сайтов) в одну установку.

Одно из первых, что пытаюсь понять — как сделать резервное копирование. Под резервным копированием я имею в виду возможность восстановить контроллер, если случится что-то ужасное. Я заметил, что могу скачать резервную копию конфигурации из программного обеспечения контроллера. Это всё, что мне нужно? Включает ли это также кастомные гостевые порталы (php)?

Последний вопрос: есть ли возможность настроить автоматическое резервное копирование с определённым интервалом?

Спасибо!
 
@slooffmaster

Скрипт довольно простой. Зависит от unifi_sh_api (я просто добавил расширение .sh), который можно взять из постов с релизами контроллера. Ещё нужна утилита curl. Используется докер-образ на базе ubuntu (нет особой причины для версии 15, раньше я пользовался ею для официального клиента owncloud, но итоговый образ был огромным) с установленными curl, скриптом и API. Учётные данные и URL передаются во время запуска из вне контейнера в виде переменных окружения. Для unifi API нужно задать переменные username, password, server, baseurl и site (все с маленькой буквы). Для owncloud — просто oc_USER, oc_PASS и oc_FQDN, тут всё понятно. Я делаю это через Docker run. Думаю, сейчас можно передавать файл с переменными в формате var=val по строкам. Ещё, если не указать restart=always, будет плохо. Хотел бы поделиться командой запуска, но на самом деле мы используем платформу для управления контейнерами, а не Docker CLI.

Также скрипт не заработает «из коробки», если ваш owncloud только по HTTP или с самоподписанным сертификатом.

FROM ubuntu:15.10  
MAINTAINER Tampa1TS  

RUN apt-get update -qq && apt-get install -qq -y curl && apt-get clean -qq  

ADD *.sh /  

RUN chmod +x /unifi_sh_api.sh && chmod +x /unifi_sh_backup.sh  

VOLUME /ubnt  

CMD ["./unifi_sh_backup.sh"]

#! /bin/sh  
. ./unifi_sh_api.sh  

unifi_login  
unifi_backup /ubnt/controller.unf  
unifi_logout  

curl -u "${oc_USER}":"${oc_PASS}" -T /ubnt/controller.unf "https://${oc_FQDN}/remote.php/webdav/ubnt/controller.unf"  
# бэкап в owncloud через curl (гораздо меньше и быстрее сборка, чем с нативным клиентом)  

sleep 2d # ждем 2 дня  
exit # и позволяем Docker перезапустить контейнер
 
В ответ @slooffmaster — хотел бы, чтобы это распространили. Тут было предложение добавить официальную поддержку для чего-то подобного: https://community.ui.com/feature-requests/f1eecfd6-2562-425a-9968-2a3aad3829ef. Очень хочется добавить твоё решение в список того, что я нахожу, пока продолжаю читать форумы 😀
 
@kyle-hemsley Звучит как хороший подход. Не мог бы ты поделиться кодом, который использовал для этого? Может быть полезно и другим😉
 
https://community.ui.com/releases/0ac8ef64-90c5-4f5d-826f-266f2d8cf7f4 Похоже, в версии 5.10 добавили автоматические бэкапы... Но это не решает вопрос с тем, как выгрузить их с контроллера или сохранить вне площадки, так что, видимо, время, потраченное на создание докер-контейнера для автоматического бэкапа через API с последующей загрузкой на owncloud, всё же не зря.
 
Да ну, бэкапы — это для нытиков. Живи на грани. 😀
 
@macboost84

Спасибо за пример скрипта! Всем, кто хочет официальной поддержки, рекомендую проголосовать за этот запрос на функцию: https://community.ui.com/feature-requests/f1eecfd6-2562-425a-9968-2a3aad3829ef. Ранее я находил другой скрипт для резервного копирования и тоже выкладывал его в комментариях к этой идее.
 
Потрясно
 
Спасибо, дружище, оценил быструю ответную реакцию, всё улажено.
 
Ничего страшного в первом варианте нет. Это нормальная реакция. Если хочешь от этого избавиться, сделай так: docd /var/lib/unifitar -czf FILE.tar.gz /data* Я сейчас на мобильном, поэтому проверить не могу.
 
Получаю такое сообщение:  
--- UniFi Controller Backup Starting ---  

Создается файл резервной копии 2016-06-29_unifi.tar.gz  
tar: Удаляю начальный `/` из имён файлов  
tar: /var/lib/unifi/data: Не могу получить статус: Нет такого файла или директории  
tar: Завершаю с ошибкой из-за предыдущих проблем  

--- UniFi Controller Backup Completed ---  

А если убрать начальный /, как советует, то выходит вот что:  
--- UniFi Controller Backup Starting ---  

Создается файл резервной копии 2016-06-29_unifi.tar.gz  
tar: var/lib/unifi/data: Не могу получить статус: Нет такого файла или директории  
tar: Завершаю с ошибкой из-за предыдущих проблем  

--- UniFi Controller Backup Completed ---  

Большое спасибо за быстрый ответ 😀
 
tar -czf ${BKPDIR}/${DATE}_unifi.tar.gz ${UCDDIR}
 
Извините, половина сообщения обрезалась... Кто-нибудь может понять, почему это не работает? Ниже — содержимое файла .sh, и при запуске я получаю такое:

--- UniFi Controller Backup Starting ---  
Создаётся файл резервной копии 2016-06-29_unifi.tar.gz  
tar: Отказываюсь создавать пустой архив  
Попробуйте 'tar --help' или 'tar --usage' для дополнительной информации.  
--- UniFi Controller Backup Completed ---

Я могу записывать в папку резервных копий и создавать там текстовый файл, значит, программа видит папку и может туда писать. Я могу сделать ls в исходной папке и вижу там файлы.  
Извините, наверное, это очень просто, я в этом новичок!

#!/bin/bash

# НАСТРОЙКИ

# Путь к папке с данными UniFi контроллера  
UCDDIR="/var/lib/unifi/data/"

# Путь к папке для резервных копий  
BKPDIR="/media/NTS-BACKUP"

# КОНЕЦ НАСТРОЕК  
####################################################################################################
# ПРОГРАММА

# Получаем текущую дату  
DATE=$(date +%Y-%m-%d)

# Начинаем процесс резервного копирования  
printf "\n--- UniFi Controller Backup Starting ---\n\n"

# Останавливаем службу UniFi  
service unifi stop

# Переходим в корневую папку  
cd /

# Создаем папку для резервных копий, если её нет  
mkdir -p $BKPDIR

# Создаем файл резервной копии UniFi  
printf "Creating backup file ${DATE}_unifi.tar.gz\n"  
tar -C ${UCDDIR} -czf ${BKPDIR}/${DATE}_unifi.tar.gz

# Запускаем службу UniFi  
service unifi start

# Завершаем процесс резервного копирования  
printf "\n--- UniFi Controller Backup Completed ---\n\n"
 
Спасибо  

@macboost84
 
Не хочу поднимать тему, которой несколько месяцев, но я написал решение для резервного копирования, которое можно автоматизировать с помощью cron. Работает на Debian/Ubuntu. http://github.com/markhadjar/unifi_backup Дайте знать, если у вас всё получилось и если возникнут вопросы.
Страницы: 1
Читают тему (гостей: 1)