Установка и первичная настройка 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" [...] 11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH) \ "swift" [...]
Выберите Openstack 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://api.selcdn.ru/v3
Два следующих пункта (tenant и region) являются факультативными, и их можно пропустить. В последнем вопросе диалога будет предложено еще раз проверить все настройки:
Remote config -------------------- [selectel] type = swift env_auth = false user = your_username key = your_password auth = https://api.selcdn.ru/v3 tenant = your_username auth_version = 3 endpoint_type = public -------------------- 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 selectel:[имя контейнера]
Синхронизация файлов на локальной машине и в хранилище:
rclone sync /home/local/directory selectel:[имя контейнера]
Синхронизация файлов в хранилище с файлами на локальной машине:
rclone sync selectel:[имя контейнера] /home/local/directory
При выполнении операций копирования и синхронизации rclone проверяет все файлы по дате и времени изменения или md5-сумме. Из директории-источника в директорию назначения передаются те файлы, которые были изменены.
Подробное обо всех командах можно прочитать в официальной документации. Также краткую справку можно получить с помощью команды:
rclone --help
Перенос данных из одного облачного хранилища в другое
Рассмотрим следующий практический пример: у нас есть папка с фотографиями на 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]:[имя контейнера]