Перейти к основному содержимому
Duplicity
Последнее изменение:

Duplicity

Duplicity — интерфейс командной строки для резервного копирования. Duplicity поддерживает протоколы SSH/SCP, FTP, HSI, WebDAV, Tahoe-LAFS и Amazon S3 для соединения с файловым сервером, архивирует данные и загружает их на локальный или удаленный файловый сервер и шифрует данные при помощи утилиты GnuPG.

Настроить Duplicity

  1. Настройте доступ.
  2. Установите клиент.
  3. Создайте конфигурацию Duplicity.

1. Настроить доступ

Настроить доступ может пользователь с ролью Владелец аккаунта или Администратор пользователей.

Создайте сервисного пользователя с ролью с доступом в объектное хранилище. Если вы используете пользователя с ролью Пользователь объектного хранилища, в контейнере должна быть настроена политика доступа.

2. Установить клиент

  1. Откройте терминал.

  2. Установите Duplicity:

    sudo apt-get install duplicity
  3. Установите пакеты python-swiftclient и librsync:

    sudo apt-get install python-swiftclient
    sudo apt-get install librsync-dev
  4. Установите систему контроля версий Bazaar и загрузите swiftbackend:

    sudo apt-get install bzr
    bzr branch lp:~mhu-s/duplicity/swiftbackend
  5. Установите swiftbackend:

    cd swiftbackend && sudo python dist/setup.py install

3. Создать конфигурацию Duplicity

  1. В текстовом редакторе добавьте скрипт для резервного копирования:

    # Авторизационные данные для подключения к хранилищу
    SWIFT_PASSWORD="<password>"
    SWIFT_AUTHVERSION=2
    SWIFT_TENANTNAME="<username>"
    SWIFT_AUTHURL=https://<swift_domain>
    SWIFT_USERNAME="<username>"
    # Выполнение архивирования
    duplicity <path> swift://<container_name>

    # Очистка авторизационных данных для безопасности
    unset SWIFT_PASSWORD
    unset SWIFT_AUTHVERSION
    unset SWIFT_TENANTNAME
    unset SWIFT_AUTHURL
    unset SWIFT_USERNAME

    Укажите:

    • <password> — пароль сервисного пользователя. Если вы забыли пароль, создайте новый;
    • <swift_domain> — домен Swift API, зависит от пула, в котором находится объектное хранилище;
    • <username> — имя сервисного пользователя;
    • <path> — путь к папке на локальной машине;
    • <container_name> — имя контейнера.
  2. Сохраните файл и сделайте его исполняемым:

    chmod +x <file_name>

    Укажите <file_name> — имя файла.

  3. Запустите выполнение команд из файла:

    ./<file_name>
  4. Укажите кодовое слово для доступа к файлам. Запустится резервное копирование. Статистика отобразится в консоли.

  5. Для загрузки зашифрованной резервной копии из хранилища на локальную машину скопируйте скрипт из шага 1.

  6. В скрипте замените команду duplicity <path> swift://<container_name> на duplicity swift://<container_name> <path>.

  7. Сохраните скрипт в файл с именем restore.sh и сделайте его исполняемым. При выполнении команды ./restore.sh будет запрошено кодовое слово. После ввода кодового слова все файлы из резервной копии будут загружены в указанную директорию на локальной машине.