Duplicati

Duplicati — система резервного копирования, с удобным, лёгким и приятным для глаз интерфейсом, позволяющая делать локальные и удалённые бекапы в облака или просто на удалённые хранилища.

duplicati

Установка Duplicati.

В рамках этой заметки, посмотрим на Duplicati 2.0, она находится в статусе beta, но основной функционал доступен для работы уже сейчас. Для установки разработчики подготовили пакеты для всех популярных ОС, так что нам достаточно будет скачать их и поставить штатными средствами. Ставить будем на CentOS 7, здесь потребуется репозиторий EPEL.

# yum install epel-release wget
# wget https://github.com/duplicati/duplicati/releases/download/v2.0.2.17-2.0.2.17_canary_2018-01-23/duplicati-2.0.2.17-2.0.2.17_canary_20180123.noarch.rpm
# yum localinstall duplicati-2.0.2.17-2.0.2.17_canary_20180123.noarch.rpm

У меня, при установке на сервер, не оказалось Unit файла для запуска (возможно позже разработчики добавят его), так что я просто набросал простейший юнит для него:

# cat /etc/systemd/system/duplicati.service
[Unit]
Description=Duplicati backup
After=network.target

[Service]
EnvironmentFile=-/etc/default/duplicati
ExecStart=/usr/bin/duplicati-server $DAEMON_OPTS

[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemctl restart duplicati

Если всё сделано верно, то на порте 8200 у нас запускается веб-интерфейс панели:

# netstat -nlp | grep mono
tcp 0 127.0.0.1:8200 0.0.0.0:* LISTEN 18365/mono-sgen

И вот здесь есть важный момент — по умолчанию, в первый раз у меня duplicati запустился на локалхосте, и достучаться извне до панели я после первого запуска не мог. В данном случае помог трюк с пробросом порта по SSH:

1. На локальном ПК выполняем команду (1.2.3.4 — сервер с системой бекапа):

# ssh -f root@1.2.3.4 -L 8888:localhost:8200 -N

2. На локальном же ПК, открываем в браузере адрес http://127.0.0.1:8888 и получаем доступ к панели управления.

Настройка Duplicati.

При первом запуске и доступе в панель, система попросит нас указать пароль для авторизации, конечно же соглашаемся с этим и оказываемся в настройках. Здесь мы указываем пароль, разрешаем удалённый доступ к панели, выбираем язык, при необходимости скрываем донат и выбираем тему оформления.

duplicati

Здесь же, в нижней части страницы доступен расширенный редактор дополнительных настроек, но к нему имеет смысл обращаться только если это действительно необходимо. Заданные по умолчанию настройки подходят для большинства возникающих у администратора задач.

Когда удалённый доступ в панель будет разрешён, перезапускаем сервис duplicati на сервере, и убеждаемся что теперь он слушает внешний интерфейс:

# netstat -nlp | grep mono
tcp 0 0.0.0.0:8200 0.0.0.0:* LISTEN 18365/mono-sgen

К слову, выполнив команду:

# duplicati —help

Мы можем увидеть что сервер поддерживает дополнительные опции при запуске — можно задать конкретные порт и интерфейс для работы панели, указать путь до сертификата, отключить шифрование базы, определить параметры логирования и т. п. При необходимости, можно модифицировать юнит-файл для заапуска сервера, в соответствии с этими параметрами.

Создание задачи.

Получив прямой доступ в панель, вводим установленный ранее пароль и приступаем к созданию и настройке задания для бекапа:

1. Нажимаем на «Добавить резервную копию» в левом меню. Выбираем пункт «Настройка новой резервной копии» и жмём Далее.

2. В Общих параметрах резервного копирования даём название заданию, выбираем шифрование и вводим кодовую фразу. Жмём Далее.

3. Следующим шагом выполняем настройку хранилища для бекапов. Здесь на выбор доступно большое количество вариантов — есть и локальное хранение, и бекап на FTP\SSH\WebDAV, доступны для использования и протоколы различных облачных сервисов. Выбираем то что нам нужно (я буду использовать удалённый FTP сервер) и указываем нужные данные для доступа. Нажимаем на кнопку Проверка доступа, и если система сообщает нам что всё хорошо, переходим к следующему шагу.

4. Здесь мы выбираем какие данные будут попадать в резервную копию. При необходимости, на этом шаге мы можем добавить фильтры, которые будут исключать какие-то данные из резервной копии.

duplicati

5. Пятым шагом при настройке бекапа будет указание времени и периодичности выполнения задания — задаём время, дни недели, период запуска и жмём Далее.

6. Последним шагом здесь будет указание размера томов, в которых будут храниться бекапы и на каких условиях будет выполняться их ротация. Здесь же доступен редактор расширенных параметров, но обращаться к ним имеет смысл только при полном понимании вопроса.

Нажимаем на кнопку Сохранить, соглашаемся с тем, что парольную фразу мы запомнили и получаем готовое задание на создание бекапа.

Создание бекапа.

Переходим на главную страницу, где будет описано созданное нами задание. Обращаем внимание на две иконки в верхней части страницы — пауза и иконка «спидометра». Нажав на «паузу», мы получаем доступ временной приостановке заданий в очереди, а нажав на «спидометр» задаём ограничение скорости, с которым Duplicati будет работать на сервере.

duplicati

Здесь же, на главной странице, мы получаем доступ к ручному запуску бекапа, к восстановлению данных, редактированию\экспорту\импорту задания, просмотру его логов, базовой проверке данных и т. п.

Восстановление данных.

Для восстановления данных на сервере, переходим в соответствующий раздел панели.

1. Здесь мы выбираем резервную копию из которой будет восстанавливать данные Duplicati и нажимаем Далее.

2. Следующим шагом будет выбор файлов, которые необходимо восстановить. Имеется возможность выбрать только конкретные файлы из бекапа, которые будут развёрнуты на сервере.

duplicati

3. Последним шагом система спросит нас, как нужно восстановить файлы — переписать существующие или нет, расположить их в исходной директории или в какой-то другой, нужно ли будет восстановить права на файлы? Задаём параметры и нажимаем на кнопку Восстановить.

Система восстановит данные, а при необходимости сообщит о возможных проблемах отдельным уведомлением.

Вот так, достаточно просто, с помощью Duplicati можно настроить удобное резервное копирование на сервере. Не стоит забывать что система эта пока что находится в стадии бета тестирования, так что на суровый прод её ставить нужно аккуратно, однако для каких-то простых задач, Duplicati уже можно использовать. Будем следить за развитием проекта и дальше.

@SysadminNotes | https://sysadmin.pm

4 thoughts on “Duplicati

  1. Спасибо. Трюк с ssh и localhost помог настроить на удалённом vps. 🙂

  2. А как сделать, чтобы когда юзер нажимал «завершение работы» выполнялась резервная копия и комп выключался? Винда.

    1. Прошу прощения, задержался с ответом.

      Винду я не использую совсем уже очень давно, так что даже подсказать не смогу как это реализовать, увы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *