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.2.3.4 — сервер с системой бекапа):
# ssh -f root@1.2.3.4 -L 8888:localhost:8200 -N
- На локальном же ПК, открываем в браузере адрес http://127.0.0.1:8888 и получаем доступ к панели управления.
Настройка Duplicati.
При первом запуске и доступе в панель, система попросит нас указать пароль для авторизации, конечно же соглашаемся с этим и оказываемся в настройках. Здесь мы указываем пароль, разрешаем удалённый доступ к панели, выбираем язык, при необходимости скрываем донат и выбираем тему оформления.

Здесь же, в нижней части страницы доступен расширенный редактор дополнительных настроек, но к нему имеет смысл обращаться только если это действительно необходимо. Заданные по умолчанию настройки подходят для большинства возникающих у администратора задач.
Когда удалённый доступ в панель будет разрешён, перезапускаем сервис duplicati на сервере, и убеждаемся что теперь он слушает внешний интерфейс:
netstat -nlp | grep mono
tcp 0 0.0.0.0:8200 0.0.0.0:* LISTEN 18365/mono-sgen
К слову, выполнив команду:
duplicati —help
Мы можем увидеть что сервер поддерживает дополнительные опции при запуске — можно задать конкретные порт и интерфейс для работы панели, указать путь до сертификата, отключить шифрование базы, определить параметры логирования и т. п. При необходимости, можно модифицировать юнит-файл для заапуска сервера, в соответствии с этими параметрами.
Создание задачи.
Получив прямой доступ в панель, вводим установленный ранее пароль и приступаем к созданию и настройке задания для бекапа:
-
Нажимаем на «Добавить резервную копию» в левом меню. Выбираем пункт «Настройка новой резервной копии» и жмём Далее.
-
В Общих параметрах резервного копирования даём название заданию, выбираем шифрование и вводим кодовую фразу. Жмём Далее.
-
Следующим шагом выполняем настройку хранилища для бекапов. Здесь на выбор доступно большое количество вариантов — есть и локальное хранение, и бекап на FTP\SSH\WebDAV, доступны для использования и протоколы различных облачных сервисов. Выбираем то что нам нужно (я буду использовать удалённый FTP сервер) и указываем нужные данные для доступа. Нажимаем на кнопку Проверка доступа, и если система сообщает нам что всё хорошо, переходим к следующему шагу.
-
Здесь мы выбираем какие данные будут попадать в резервную копию. При необходимости, на этом шаге мы можем добавить фильтры, которые будут исключать какие-то данные из резервной копии.

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

Здесь же, на главной странице, мы получаем доступ к ручному запуску бекапа, к восстановлению данных, редактированию\экспорту\импорту задания, просмотру его логов, базовой проверке данных и т. п.
Восстановление данных.
Для восстановления данных на сервере, переходим в соответствующий раздел панели.
-
Здесь мы выбираем резервную копию из которой будет восстанавливать данные Duplicati и нажимаем Далее.
-
Следующим шагом будет выбор файлов, которые необходимо восстановить. Имеется возможность выбрать только конкретные файлы из бекапа, которые будут развёрнуты на сервере.

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