Установка и настройка Duplicity

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

Программа Duplicity включена в репозитории большинства современных Linux-систем и устанавливается при помощи стандартного менеджера пакетов. Мы рассмотрим пример для Ubuntu:

  1. Установите:

    sudo apt-get install duplicity 
  2. Для работы с облачным хранилищем на клиентской машине должны быть обязательно установлены пакеты python-swiftclient и librsync:

    sudo apt-get install python-swiftclient
    sudo apt-get install librsync-dev
  3. Установите плагин swiftbackend. Сначала скорируйте с launchpad соответствующий репозиторий (для этого на клиентскую машину потребуется также установить систему контроля версий Bazaar — Launchpad использует именно ее):

    sudo apt-get install bzr
    bzr branch lp:~mhu-s/duplicity/swiftbackend
  4. Выполните команду:

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

    По завершении установки Duplicity будет готова к работе с Облачным хранилищем. Откройте любой текстовый редактор и напишите небольшой скрипт для резервного копирования:

    # Авторизационные данные для подключения к хранилищу
    SWIFT_PASSWORD="пароль для входа в хранилище"
    SWIFT_AUTHVERSION=2
    SWIFT_TENANTNAME="имя пользователя"
    SWIFT_AUTHURL=https://api.selcdn.ru/v2.0
    SWIFT_USERNAME="имя пользователя"
    
    # Выполнение архивирования 
    duplicity /путь к папке/на клиентской машине swift://имя контейнера в хранилище
    
    # Очистка авторизационных данных для безопасности
    unset SWIFT_PASSWORD
    unset SWIFT_AUTHVERSION
    unset SWIFT_TENANTNAME
    unset SWIFT_AUTHURL
    unset SWIFT_USERNAME

Сохраните этот файл под именем, например, backup.sh и сделайте его исполняемым:

chmod +x backup.sh

Выполните следующую команду:

./backup.sh

Далее GnuPG запросит кодовое слово для доступа к файлам. Далее начнется резервное копирование. Статистка будет отображена в консоли:

--------------[ Статистика резервного копирования ]--------------
StartTime 1391068911.00 (Thu Jan 30 12:01:51 2014)
EndTime 1391068911.02 (Thu Jan 30 12:01:51 2014)
ElapsedTime 0.02 (0.02 seconds)
SourceFiles 5
SourceFileSize 190210 (186 KB)
NewFiles 5
NewFileSize 190210 (186 KB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 5
RawDeltaSize 186114 (182 KB)
TotalDestinationSizeChange 185217 (181 KB)
Errors 0
-----------------------------------------------------------------

В указанный контейнер Облачного хранилища будут добавлены новые файлы:

duplicity-full-signatures.20140130T073550Z.sigtar.gpg
duplicity-full.20140130T073550Z.manifest.gpg
duplicity-full.20140130T073550Z.vol1.difftar.gpg

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

duplicity swift://имя контейнера /путь/к папке/на локальной/машине

Сохраните этот скрипт под именем restore.sh и сделайте соответствующий файл исполняемым.

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