Резервное копирование с помощью Облачного хранилища

Хранение бэкапов - один из распространенных сценариев использования хранилища. Облачное хранилище Selectel можно подружить со многими утилитами для резервного копирования.

Для хранения бэкапов в панели управления в разделе Облачное хранилище создайте приватный контейнер (доступ к приватному контейнеру возможен только после авторизации), следуя инструкции.

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

Файловый менеджер Cyberduck

Утилита Cyberduck — удобный файловый менеджер для MacOS, Linux и Windows, работающий с протоколами FTP, SFTP, WebDAV, OpenStack Swift и AmazonS3. Программа может использоваться в качестве FTP и SFTP-клиента, а также для работы с различными сервисами облачного хранения данных.

Установка графического клиента

Windows

Специально для пользователей клиента Cyberduck мы в Selectel создали профиль для работы с нашим хранилищем. Этот профиль использует протокол Swift вместо FTP, что улучшает качество работы.

Для того чтобы загрузить профиль выполните следующие действия:

  1. Скачайте файл профиля.

  2. Установите клиент, скопировав файл профиля Selectel в папку profiles (по умолчанию она расположена в C:\Program Files (x86)\Cyberduck\profiles).

  3. Запустите Cyberduck и нажмите кнопку Новое подключение.

    image

  4. Выберите профиль Selectel Cloud Storage.

    image

  5. Заполните поле Selectel ID:Username через двоеточие, где:

    Примечание: Имя пользователя и пароль устанавливаются владельцем учетной записи, их можно узнать в личном кабинете в разделе Облачное хранилище → Пользователи.

    image

  6. Введите пароль в поле Пароль.

  7. Нажмите кнопку Подключиться.

Соединение с хранилищем будет установлено и в открывшемся окне отобразится список доступных контейнеров.

Mac OS

Графическая версия Cyberduck для MacOS устанавливается стандартным способом через Appstore.
  1. Скачайте профиль файл профиля для Selectel и установите в приложение Cyberduck.

    image

  2. Заполните поле Selectel ID:Username через двоеточие,  где:

    • Selectel ID - это номер учетной записи панели управления Selectel;
    • Username - это имя пользователя облачного хранилища.
  3. Введите пароль в поле Password.

  4. Нажмите кнопку Подключить.

image
В результате выполненных действий откроется окно со списком доступных пользователю контейнеров. 

Linux

Графическая версия Cyberduck для Linux-систем отсутствует. 

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

Windows

Консольная версия Cyberduck для Windows устанавливается с помощью менеджера пакетов Chocolatey.

Введите команду:

choco install duck

Загрузите последнюю версию установщика MSI по ссылке (https://dist.duck.sh/ ). Подробнее: https://trac.cyberduck.io/wiki/help/en/howto/cli#Windows.

image

Для установки профиля Selectel скопируйте файл профиля в папку profiles (по умолчанию она расположена в C:\Program Files (x86)\Cyberduck CLI\profiles).

Mac OS

Консольная версия Cyberduck для MacOS устанавливается с помощью менеджера пакетов Homebrew: 

brew install duck 

Linux

В этом разделе описана процедуру установки для Ubuntu 16.04, пользователей других дистрибутивов отсылаем к официальной документации.

Для того чтобы установить консольную версию Cyberduck, выполните следующие действия: 

1. Добавьте сначала соответствующий репозиторий:

echo 'deb https://s3.amazonaws.com/repo.deb.cyberduck.io nightly main' >> /etc/apt/sources.d/cyberduck.list
echo 'deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main' >> /etc/apt/sources.d/cyberduck.list

2. Добавьте ключ:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72

3. Выполните команды:

sudo apt-get update
sudo apt-get install duck

Основные операции с облачным хранилищем в консоли

Скачайте профиль Selectel файл профиля:

wget https://static.selectel.ru/kb/selectel-storage.cyberduckprofile

Создайте директорию с профилями:

mkdir -p .duck/profiles

Переместите скачанный профиль Selectel в директорию с профилями:

mv 'selectel-storage.cyberduckprofile' .duck/profiles/
Все команды для работы с облачным хранилищем имеют следующий вид:
duck -<аргумент> selectel://<имя контейнера> --username <Selectel ID>:<Username> --password <пароль>
Все возможные аргументы для команды duck можно просмотреть, введя в командную строку:
duck --help

Получение списка файлов в контейнере

Чтобы получить список файлов, хранимых в некотором контейнере, используется опция -l (или −−list):

duck -l selectel://<имя контейнера> --username <Selectel ID>:<Username> --password <пароль>
Результат вывода:
1.pdf
2.jpg
3.png

Примечание: иногда в Linux-системах не отображаются файлы с именами, набранными кириллицей.

Скачивание файла

Для скачивания файла из хранилища используется команда вида:

duck -d selectel://<имя контейнера> --username <Selectel ID>:<Username> --password <пароль>

Открытие файла для редактирования на локальной машине

С помощью консольной версии CyberDuck можно открывать файлы для редактирования на локальной машине, по завершении редактирования в хранилище будет загружена обновленная (со всеми внесенными изменениями) версия файла. Для этого используется аргумент --edit:
duck --edit selectel://<имя контейнера> --username <Selectel ID>:<Username> --password <пароль>

Файл будет открыт в приложении, используемом в системе для данного типа файлов. Загрузка измененненной версии начнется автоматически.

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

Загрузка объекта в хранилище

Операция загрузки выполняется при помощи команды вида:
duck --upload selectel://<имя контейнера>/ --username <Selectel ID>:<Username> --password <пароль>

При загрузке объекта нужно указывать полный путь к месту хранения этого самого объекта. Например, если мы хотим сохранить файл myimage.png в контейнере images, то путь к нему нужно указать так: /images/ myimage.png.

Большие (размером более 2ГБ) объекты Cyberduck загружает в хранилище по частям.

Версии объектов и резервное копирование

Консольная версия Cyberduck представляет собой удобный инструмент для резервного копирования и архивирования данных. Рассмотрим эти функции более подробно на конкретных практических примерах.

Представим себе, что у нас на локальной машине имеется директория, содержимое которой нужно периодически копировать в облачное хранилище. Для этого написан специальный скрипт и добавлено задание Cron, которое отправляет резервную копию в хранилище каждый день в указанное время.

Скрипт выглядит так:

#!/bin/bash
SWIFT_USERNAME=имя пользователя
SWIFT_PASSWORD=пароль для входа в хранилище
SWIFT_AUTH_URL=auth.selcdn.ru
BACKUP_PATH=путь к месту хранения бэкапа
LOCAL_PATH=путь к папке на локальной машине

duck --upload selectel://$SWIFT_USERNAME@$SWIFT_AUTHURL$BACKUP_PATH $LOCAL_PATH --existing rename --password $SWIFT_PASSWORD -q

Обратим внимание на синтаксис команды duck. В приведенном примере используются ключ --existing, который указывает, что делать с уже имеющимися в хранилище файлами. Опция rename переименовывает уже имеющуюся резервную копию, добавляя к её имени время и дату.

С помощью cyberduck можно осуществлять и дифференциальное резервное копирование. Для этого используются опция compare:

duck --upload  selectel://<полный путь к объекту в хранилище> <путь к файлу на локальной машине> --existing compare --username <Selectel ID>:<Username> --password <пароль>

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

При использовании опции skip в хранилище будут загружены только новые файлы (те, которые появились в папке на локальной машине после предыдущей загрузки). Уже имеющиеся файлы не будут загружены, даже если на локальной машине они были изменены.

Аргумент overwrite просто удалит из хранилища имеющуюся резервную копию и загрузит новую.

Синхронизация локальных файлов с файлами в хранилище

Синхронизация файлов — это процесс, в результате которого две директории, одна из которых находится на локальной машине, а другая — в хранилище, будут содержать одинаковый набор файлов в одной и той же версии с наиболее свежей датой изменений. Если на локальной машине какие-либо файлы были изменены, добавлены или удалены, эти же самые файлы будут изменены, добавлены или удалены в хранилище, и наоборот.

Синхронизация выполняется при помощи команды:

duck --synchronize selectel://<имя контейнера> --username <Selectel ID>:<Username> --password <пароль> <путь к папке на локальной машине>
С помощью функции синхронизации можно поддерживать помещенные в хранилище резервные копии данных с локальной машины в актуальном состоянии.

Вот пример простого скрипта:

 
#!/bin/bash
SWIFT_USERNAME=имя пользователя
SWIFT_PASSWORD=пароль для входа в хранилище
SWIFT_AUTH_URL=auth.selcdn.ru
BACKUP_PATH=путь к месту хранения бэкапа
LOCAL_PATH=путь к папке на локальной машине

duck --synchronize selectel://$SWIFT_USERNAME@SWIFT_AUTHURL$BACKUP_PATH $LOCAL_PATH --password $SWIFT_PASSWORD -q

Достаточно добавить соответствующее задание в cron — и данные будут автоматически синхронизироваться с указанной периодичностью.

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

Копирование файлов

Чтобы скопировать файл из одного контейнера в другой , используется команда вида:
duck --сopy swift:// <username@auth.selcdn.ru>/<полный путь к файлу> <username@auth.selcdn.ru>/<путь к новому месту хранения> -p <пароль>

Опция -v

Чтобы на консоль выводилась информация обо всех HTTP-запросах, осуществляемых при выполнении операций с хранилищем, а также об ответах на них, используется опция -v (или --verbose). Это помогает понять, как с хранилищем взаимодействуют сторонние приложения.

Установка утилиты supload

Supload (GitHub) — утилита, специально созданная, чтобы упростить загрузку файлов в хранилище Selectel. 

Возможности утилиты:

  • загрузка локального файла в хранилище;

  • рекурсивная загрузка всех файлов в указанной папке и подпапках;

  • гарантия загрузки файлов с помощью сверки контрольных сумм;

  • загрузка только изменившихся и новых файлов;

  • настройка авто-удаления файлов в хранилище.

Если у вас есть сайт средних размеров с базой данных MySQL, которую вы хотите регулярно бекапить, то достаточно скачать два специально подготовленных скрипта и указать необходимые настройки. 

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

wget https://raw.github.com/selectel/supload/master/supload.sh
mv supload.sh /usr/local/bin/supload
chmod +x /usr/local/bin/supload

Выполнение бэкапа

Для выполнения бэкапа скачайте и настройте скрипт:

wget https://raw.github.com/selectel/storage/master/utils/sbackup.sh
chmod +x sbackup.sh

Откройте скрипт «sbackup.sh» с помощью текстового редактора и поменяйте следующие значения:

  • SS_USER — пользователь для авторизации в хранилище (тот дополнительный пользователь который был создан нами ранее);

  • SS_PWD — пароль для пользователя;

  • SS_CONTAINER — имя контейнера, в который будут загружаться бэкапы;

  • TARGET_DIR — путь, где расположены файлы сайта;

  • BACKUP_DIR — путь на сервере куда временно будут складываться бэкапы;

  • EXCLUDE_LIST — список файлов которые не нужно включать в архив;

  • DB_NAME — имя базы данных MySQL, чтобы бэкапить все имеющиеся базы укажите к качестве значения __ALL__;

  • DB_USER и DB_PWD — пользователь и пароль для подключения к MySQL;

  • EMAIL — email куда будет присылаться отчет о выполнении бекапа (можно указать пустым, чтобы отключить отчет);

  • EMAIL_ONLY_ON_ERROR — если указать yes, то отчет будет отправлен только в случае возникновения проблем/ошибок;

  • DELETE_BACKUPS_AFTER_UPLOAD — если указать yes, то созданные файлы бэкапов будут удалены из временной папки после успешной загрузки в хранилище;

  • STORAGE_EXPIRE — опция позволяет указать сколько дней файл бэкапа должен храниться в хранилище, после чего будет автоматически удален.

Для проверки и выполнения бэкапа запустите скрипт вручную:

./sbackup.sh

Результат выполнения будет выведен в консоль.

Настройте периодичность выполнения бэкапа с помощью cron. Для этого просто переместите скрипт в специальную директорию:

mv sbackup.sh /etc/cron.daily/50_sbackup

После этого cron будет автоматически запускать скрипт архивирования раз в сутки.

Получение резервной копии данных из приватного контейнера

Для получения резервной копии данных из приватного контейнера можно скачать сам файл, используя файловый менеджер Cyberduck и специальную ссылку, не меняя тип контейнера на публичный. После загрузки файла с бэкапом на сервер нужно выполнить распаковку данных:

mkdir backup_files
 # распаковка файлов из архива в папку backup_files
tar xvf backupname_2013-01-26_08h40m.tar.bz2 -C backup_files/
 # восстановление БД (эта операция может затереть текущее состояние базы данных)
bzcat mysql_backupname_ALL_2013-01-26_08h40m.bz2 | mysql

Загрузка файла в контейнер

Для загрузки одного локального файла «my.doc» в контейнер «files» хранилища (контейнер должен быть создан заранее) введите команду:

supload -u USERNAME -k USERKEY files my.doc

Можно загружать файлы в конкретную папку внутри контейнера:

supload -u USERNAME -k USERKEY files/docs/ my.doc

При этом перед загрузкой файла вычисляется его контрольная сумма (MD5) и загрузка считается успешной только при совпадении контрольных сумм.

Для загрузки всех файлов из определенной папки нужно использовать опцию -r:

supload -u USERNAME -k USERKEY -r files local/docs/

Для каждого загружаемого файла будет выполнен контроль по контрольной сумме.

Сверка контрольных сумм дает еще одну дополнительную возможность — если запустить утилиту повторно, то есть данные уже есть в хранилище и контрольные суммы совпадают, загрузка файла пропускается. Это позволяет загружать только новые или изменившиеся файлы.

Удаление файлов

Хранилище поддерживает автоматическое удаление файлов, «supload» позволяет указать сколько времени нужно хранить файл:

supload -u USERNAME -k USERKEY -d 7d files my.doc

Опция -d указывает после какого времени в минутах (m), часах (h) или днях (d) хранилище автоматически выполнит удаление файла. Эта опция действует также при рекурсивной загрузке файлов. Если файл уже был загружен, то повторный запуск команды не меняет ранее установленный (или вообще не заданный) срок хранения файла.

Допустим ваша система архивирования складывает файлы с бэкапом в папку /var/backups/site/ и контролирует удаление файлов через определенный период времени. Можно настроить периодический запуск «supload» для загрузки всех файлов с ограничением времени хранения, например:

supload -u USERNAME -k USERKEY -d 31d -r backups /var/backups/sites

Тогда каждый новый загруженный файл бэкапа будет храниться в хранилище 31 день, а у ранее загруженных — постепенно будет уменьшаться срок их хранения и они будут автоматически удалены так же через 31 дней с момента их загрузки. Чтобы такая схема правильно работала нужно, чтобы у вашей системы архивирования срок удаления файлов был меньше чем указанный в «supload», иначе старые файлы могут загрузиться заново.

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

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

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

sudo apt-get install duplicity 

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

sudo apt-get install python-swiftclient
sudo apt-get install librsync-dev

Теперь нужно установить плагин swiftbackend. Сначала клонируем с launchpad соответствующий репозиторий (для этого на клиентскую машину потребуется также установить систему контроля версий Bazaar — Launchpad использует именно ее):

sudo apt-get install bzr
bzr branch lp:~mhu-s/duplicity/swiftbackend

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

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

По завершении установки Duplicity будет готова к работе с облачным хранилищем.

Откроем любой текстовый редактор и напишем небольшой скрипт для резервного копирования:

# Авторизационые данные для подключения к хранилищу
export SWIFT_USERNAME="имя пользователя"
export SWIFT_PASSWORD="пароль для входа в хранилище"
export SWIFT_AUTHURL="https://auth.selcdn.ru"

# Выполнение архивирования 
duplicity /путь к папке/на клиентской машине swift://имя контейнера в хранилище

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

Сохраним этот файл под именем, например, 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 запросит кодовое слово. После ввода кодового слова все файлы из резервной копии будут загружены в указанную директорию на локальной машине.

Установка и первичная настройка rclone

Утилита rclone синхронизирует данные в хранилище и на локальной машине. Её можно использовать и для резервного копирования, и в работе со статическими сайтами.

Ссылки для скачивания пакетов для остальных ОС можно найти на странице загрузки.

Мы будем описывать особенности работы c rclone на материале ОС Linux. Для установки потребуется скачать необходимый пакет, а далее выполнить:

unzip rclone-current-linux-amd64.zip
cd rclone-v1.36-linux-amd64
sudo cp rclone /usr/sbin/
sudo chown root:root /usr/sbin/rclone
sudo chmod 755 /usr/sbin/rclone
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb

По завершении установки настроим rclone для работы с облачным хранилищем Selectel:

rclone config

На консоли появится такой диалог:

No remotes found - make a new one
n) New remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
n/r/c/s/q>

Выбираем n и нажимаем клавишу Enter. Далее нам нужно будет указать имя подключения к удаленному хранилищу name >. Указываем любое имя (например, Selectel) и переходим к следующему пункту:

name> Selectel
Type of storage to configure.
Choose a number from below, or type in your own value
1 / Amazon Drive
  \ "amazon cloud drive"
2 / Amazon S3 (also Dreamhost, Ceph, Minio)
  \ "s3"
3 / Backblaze B2
  \ "b2"
4 / Dropbox
  \ "dropbox"
5 / Encrypt/Decrypt a remote
  \ "crypt"
6 / Google Cloud Storage (this is not Google Drive)
  \ "google cloud storage"
7 / Google Drive
  \ "drive"
8 / Hubic
  \ "hubic"
9 / Local Disk
  \ "local"
10 / Microsoft OneDrive
  \ "onedrive"
11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
  \ "swift"
12 / SSH/SFTP Connection
  \ "sftp"
13 / Yandex Disk
  \ "yandex"

Выбираем swift и вводим цифру 11. Нажимаем Enter.

Storage> 11

После этого программа запросит имя пользователя и пароль:

User name to log in.

user> [имя пользователя]
API key or password.
key> [пароль]
Authentication URL for server.
Choose a number from below, or type in your own value
1 / Rackspace US
  \ "https://auth.api.rackspacecloud.com/v1.0"
2 / Rackspace UK
  \ "https://lon.auth.api.rackspacecloud.com/v1.0"
3 / Rackspace v2
  \ "https://identity.api.rackspacecloud.com/v2.0"
4 / Memset Memstore UK
  \ "https://auth.storage.memset.com/v1.0"
5 / Memset Memstore UK v2
  \ "https://auth.storage.memset.com/v2.0"
6 / OVH
  \ "https://auth.cloud.ovh.net/v2.0"

Нашего хранилища в списке нет, поэтому укажем адрес вручную:

auth > https://auth.selcdn.ru/v1.0

Два следующих пункта (tenant и region) являются факультативными, и их можно пропустить. В последнем вопросе диалога нам будет предложено еще раз проверить все настройки:

Remote config
--------------------
[selectel]
user = your_username
key = your_password
auth = https://auth.selcdn.ru/v1.0
tenant =  user 
region = 
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> 

Если всё правильно, выбираем вариант y и нажимаем клавишу Enter.

Синтаксис команд для работы с хранилищем

Просмотр списка контейнеров в хранилище

rclone lsd selectel:

Создание нового контейнера:

rclone mkdir selectel:[имя контейнера]

Просмотр списка файлов в контейнере:

rclone ls selectel:[имя контейнера]

Копирование файлов с локальной машины в хранилище:

rclone copy /home/local/directory

Синхронизация файлов на локальной машине и в хранилище:

rclone sync /home/local/directory selectel:[имя контейнера]

Синхронизация файлов в хранилище с файлами на локальной машине:

rclone selectel:[имя контейнера] sync /home/local/directory

При выполнении операций копирования и синхронизации rclone проверяет все файлы по дате и времени изменения или md5-сумме. Из директории-источника в директорию назначения передаются те файлы, которые были изменены.

Подробное обо всех командах можно прочитать в официальной документации. Также краткую справку можно получить с помощью команды:

rclone --help

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

Пример

Рассмотрим следующий практический пример: у нас есть папка с фотографиями на Google Docs, и её содержимое нужно перенести в наше облачное хранилище.

Создаём новое подключение; в списке доступных облачных хранилище выбираем Google Drive. После этого нам будет предложено указать два параметра: client_id и client_secret. В ответ на соответствующие вопросы не ничего не вводим и нажимаем клавишу Enter.

Система задаст следующий вопрос:

Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n>

Выбираем ответ «нет» (n). Rclone сгенерирует ссылку для получения кода:

If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?client_id=202264815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=ac901aefe97aff8ce65fe593060d0b0c
Log in and authorize rclone for access

Откроем эту ссылку в браузере и дадим rclone разрешение на доступ к файлам.

После этого API Google Drive вернёт код, который нужно будет вставить в ответ на вопрос:

Enter verification code>

Подключение к Google Drive настроено.

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

rclone copy [имя подключения]:[имя директории] [selectel]:[имя контейнера]

Резервное копирование сайта на WordPress

UpdraftPlus — простой и удобный в обращении плагин для создания резервных копий сайтов на Wordpress, поддерживающий протокол OpenStack Swift.

Перед установкой этого плагина выполните ряд подготовительных действий:

  • создайте в хранилище контейнер, в который будут помещаться резервные копии;

  • создайте специального пользователя, который будет иметь доступ только к этому контейнеру;

  • на сервере создайте папку в директории wp-content для временного хранения резервных копий, доступную для записи.

Установите UpdraftPlus следуя инструкции:

  1. Выберите в меню Плагины пункт Добавить новый.

  2. После активации плагина в меню Настройки будет добавлен пункт Резервные копии Updraft Plus.

  3. Выберите этот пункт и перейдите на вкладку Настройки.

  4. В списке Выберите ваше удаленное хранилище выберите OpenStack Swift.

  5. Укажите реквизиты доступа к хранилищу:

    image

  6. В поле URI для авторизации укажите https://auth.selcdn.ru.

  7. В поле Арендатор (именно так в русской версии плагина передается термин tenant) введите номер учетной записи.

  8. Введите в соответствующих полях имя созданного дополнительного пользователя и его пароль.

  9. В поле Контейнер укажите имя контейнера, в котором будут храниться резервные копии.

  10. После заполнения всех полей нажмите кнопку Проверить настройки OpenStack.

  11. В случае успешной проверки будет выведено сообщение о том, что плагин получил доступ к контейнеру и может создавать в нём файлы.

    image

  12. Далее перейдите в раздел Расширенные/отладочные настройки и нажмите на ссылку Показать экспертные настройки.

  13. В поле Директория резервного копирования введите имя созданной ранее папки для временного хранения резервных копий.

Плагин настроен для работы с хранилищем.

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

Установив все необходимые параметры, нажмите кнопку Сохранить настройки и перейдите на вкладку Текущий статус:

Для того чтобы запустить процесс резервного копирования нажмите кнопку Создать РК сейчас.

image

Операция восстановление данных из резервной копии также выполняется путем нажатия на соответствующую кнопку.