rclone sync


|

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

Установка 

Рассмотрим особенности работы c rclone на материале ОС Linux. Для установки:

  1. Скачайте необходимый пакет, а далее выполните:

    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
  2. По завершении установки настройте rclone для работы с облачным хранилищем Selectel:

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

    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>
  4. Выберите n и нажмите клавишу Enter.

  5. Укажите имя подключения к удаленному хранилищу 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"
    [...]
  6. Выберите Openstack Swift и введите цифру, соответствующую номеру пункта (в данном примере это пункт 11).

  7. Нажмите Enter.

    Storage> 11
  8. После этого программа запросит имя пользователя и пароль:

    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"
  9. Нашего хранилища в списке нет, укажите адрес вручную:

    auth > https://api.selcdn.ru/v3
  10. Два следующих пункта (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> 
  11. Если всё правильно, выберите 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, и её содержимое нужно перенести в Облачное хранилище. Для этого создайте новое подключение:

  1. В списке доступных облачных хранилище выберите Google Drive.
  2. Укажите два параметра: client_id и client_secret. В ответ на соответствующие вопросы не ничего не вводите и нажимите клавишу Enter.
  3. Система задаст следующий вопрос:

    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>
  4. Выберите ответ «нет» (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
  5. Откройте эту ссылку в браузере и дайте rclone разрешение на доступ к файлам.

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

    Enter verification code>

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

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

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