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

Duplicity

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

Настроить Duplicity

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

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

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

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

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. Создайте файл со скриптом для резервного копирования:

    export SWIFT_PASSWORD=<password>
    export SWIFT_AUTHVERSION=3
    export SWIFT_TENANTNAME=<project_name>
    export SWIFT_AUTHURL="https://cloud.api.selcloud.ru/identity"
    export SWIFT_REGIONNAME=<pool>
    export SWIFT_USERNAME=<username>
    export SWIFT_USER_DOMAIN_NAME=<account_id>
    export SWIFT_PROJECT_DOMAIN_NAME=<account_id>

    duplicity <path> swift://<container_name>

    unset SWIFT_PASSWORD
    unset SWIFT_AUTHVERSION
    unset SWIFT_TENANTNAME
    unset SWIFT_AUTHURL
    unset SWIFT_USERNAME

    Укажите:

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

    chmod +x <file_name>

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

  3. Запустите скрипт:

    ./<file_name>
  4. Введите кодовое слово. Запустится резервное копирование, статистика отобразится в консоли.

  5. Опционально: для загрузки зашифрованной резервной копии из хранилища на локальную машину:

    5.1. Скопируйте скрипт из шага 1.

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

    5.3. Сохраните скрипт в файле с именем restore.sh.

    5.4. Сделайте файл исполняемым:

    chmod +x restore.sh

    5.5. Запустите скрипт:

    ./restore.sh

    5.6. Введите кодовое слово. Все файлы из резервной копии будут загружены в указанную директорию на локальной машине.