<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Резервное копирование с Duplicity

Duplicity — это утилита командной строки для резервного копирования и восстановления. Резервные копии могут быть загружены в хранилище по протоколам SCP, SFTP, WebDAV, S3, Swift и др. Утилита по умолчанию шифрует бэкапы с помощью GnuPG.

Ниже рассмотрим настройку duplicity для резервного копирования в объектное хранилище Timeweb Cloud по протоколу S3.

Подготовка

Создайте для хранения резервных копий отдельный бакет.

Установите пакет duplicity:

sudo apt install duplicity

И установите пакет boto:

pip3 install boto

Скрипт для создания резервной копии

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

#!/usr/bin/env bash

export AWS_ACCESS_KEY_ID="S3 Access Key"
export AWS_SECRET_ACCESS_KEY="S3 Secret Access Key"
export PASSPHRASE="пароль_для_шифрования_бэкапа"

endpoint_url="https://s3.twcstorage.ru"
endpoint_host="s3.twcstorage.ru"

# Путь до директории, которую необходимо копировать
source=/home

# Имя бакета и путь внутри него
bucket=имя_бакета
path_in_bucket=backup

# Запуск duplicity
duplicity \
  --s3-endpoint-url="$endpoint_url" \
  "$source" "s3://$endpoint_host/$bucket/$path_in_bucket"

Дайте скрипту права на выполнение командой:

chmod +x backup.sh

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

./backup.sh

Скрипт для восстановления из резервной копии

Для восстановления файлов из бэкапа также можно использовать скрипт. Создайте файл restore.sh со следующим содержимым:

#!/usr/bin/env bash

export AWS_ACCESS_KEY_ID="S3 Access Key"
export AWS_SECRET_ACCESS_KEY="S3 Secret Access Key"
export PASSPHRASE="пароль_для_шифрования_бэкапа"

endpoint_url="https://s3.twcstorage.ru"
endpoint_host="s3.twcstorage.ru"

bucket=имя_бакета
path_in_bucket=backup

restore_path=/home/restore_test  # сюда восстановим данные

duplicity \
  --s3-endpoint-url="$endpoint_url" \
  "s3://$endpoint_host/$bucket/$path_in_bucket" \
  "$restore_path"

Дайте скрипту права на выполнение:

chmod +x restore.sh

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

./restore.sh
Была ли статья полезна?
Ваша оценка очень важна
Комментарии 2
Анатолий Остроумов
Анатолий Остроумов
08.01.2024, 12:12

не работае, падает с такой ошибкой

Container creation failed: ClientException Container PUT failed: https://s3.timeweb.com/v1/TW_cc14378/20c398f1-oldcity 400 Bad Request  [first 60 chars of response] b'BucketAlr'

Команда Timeweb Cloud
Команда Timeweb Cloud
15.01.2024, 06:12

Попробовали со своей стороны — все отработало корректно. Напишите, пожалуйста, тикет из своей панели, посмотрим, что могло пойти не так 🤔