Облака через Rclone в Linux

Dmitry Kornev
  • 21 октября, 19:29
  • 24 октября, 07:30
  • 266

Rclone — программа для работы с облачными хранилищами. Поддерживает Dropbox, Яндекс.Диск, Google Drive, и много других. Аккаунтов от каждого облачного хранилища можно использовать сколько угодно много. Управление через командную строку. Дополнительно существует GUI-оболочка.

Программа с открытыми исходниками. Есть в версиях под Linux, Mac OS, Windows и т.д.

Я использую Rclone в Elementary OS Juno. Для установки скачал deb-пакет, его подхватил Eddy и готово.

Настройка облаков происходит в виде мастера, требуется просто отвечать на вопросы.


Подключение Яндекс.Диска

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

rclone config

Показывает подключенные аккаунты (или говорит, что подключенных нет) и спрашивает, что делать:

Current remotes:
Name                 Type
====                 ====
dropbox              dropbox

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n

Ввел n — подсоединить новый.

Задаю название для аккаунта:

name> yandex-main

Если вы собираетесь использовать один аккаунт Яндекс, то можно просто «yandex». У меня будет несколько аккаунтов. Я называю так, чтобы мне потом было понятно. По этому имени потом будет происходить обращение к аккаунту из командной строки и т.д.

Оставляю пустым:

Type of storage to configure.
Enter a string value. Press Enter for the default ("").

Выбираю 25 — Яндекс.Диск:

Choose a number from below, or type in your own value
 1 / A stackable unification remote, which can appear to merge the contents of several remotes
   \ "union"
 2 / Alias for a existing remote
   \ "alias"
 3 / Amazon Drive
   \ "amazon cloud drive"
 4 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
   \ "s3"
 5 / Backblaze B2
   \ "b2"
 6 / Box
   \ "box"
 7 / Cache a remote
   \ "cache"
 8 / Dropbox
   \ "dropbox"
 9 / Encrypt/Decrypt a remote
   \ "crypt"
10 / FTP Connection
   \ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
12 / Google Drive
   \ "drive"
13 / Hubic
   \ "hubic"
14 / JottaCloud
   \ "jottacloud"
15 / Local Disk
   \ "local"
16 / Mega
   \ "mega"
17 / Microsoft Azure Blob Storage
   \ "azureblob"
18 / Microsoft OneDrive
   \ "onedrive"
19 / OpenDrive
   \ "opendrive"
20 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
21 / Pcloud
   \ "pcloud"
22 / QingCloud Object Storage
   \ "qingstor"
23 / SSH/SFTP Connection
   \ "sftp"
24 / Webdav
   \ "webdav"
25 / Yandex Disk
   \ "yandex"
26 / http Connection
   \ "http"
Storage> 25
** See help for yandex backend at: https://rclone.org/yandex/ **

Оставляю пустыми:

Yandex Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> 
Yandex Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>

Выбираю y — чтобы соединение было настроено автоматически:

Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...

При этом меня перебрасывает в веб-браузер, где я должен авторизоваться в Яндексе и подтвердить, что разрешаю приложению получить доступ.

Все прошло успешно, инфа получена, подтверждаем что все правильно:

Got code
--------------------
[yandex-main]
type = yandex
token = {"access_token":"******","token_type":"beare............expiry":"2019-10-...."}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Готово, вернулись в начало, где в списке аккаунтов появился новый. Можно выйти:

Current remotes:
Name                 Type
====                 ====
dropbox              dropbox
yandex-main          yandex

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

С подключением Dropbox все было аналогично. Подключение Google Drive отличается очень незначительно. Пара дополнительных вопросов, где можно ничего не отвечать. Другими облаками не пользуюсь.


Синхронизация данных

У меня все данные были в облаке. Локально ничего нет.

Получение всех данных из Яндекс.Диска себе на диск:

rclone copy yandex-main: /home/d1mon/Clouds/Yandex-main

Аналогично можно поступить с аккаунтами Dropbox и Google Drive:

rclone copy dropbox: /home/d1mon/Clouds/Dropbox
rclone copy google-main: /home/d1mon/Clouds/Google-main

С хорошим интернетом получение данных происходит быстро и без проблем.

Теперь локально у себя на диске в обозначенных каталогах мы что-то изменили. Чтобы засинхронизировать данные в обратном направлении:

rclone sync /home/d1mon/Clouds/Yandex-main yandex-main:
rclone sync /home/d1mon/Clouds/Dropbox dropbox:
rclone sync /home/d1mon/Clouds/Google-main google-main:

Выгрузятся только изменения.

Синтаксис:

rclone copy ОТКУДА КУДА
rclone sync ОТКУДА КУДА

Внимательнее с ОТКУДА и КУДА, чтобы данные передавались строго в нужную сторону.

Название аккаунта облака вводится обязательно с двоеточием. За двоеточием можно указать путь, чтобы копировать или синхронизировать данные только в указанном каталоге. Пример:

rclone copy yandex-main:dir /home/d1mon/Clouds/Yandex-main/dir
rclone sync /home/d1mon/Clouds/Yandex-main/dir yandex-main:dir

Что дальше?

Программа делает свое дело. Данные можно получать и отправлять, аккаунты любые, в любом количестве. Далее, все в наших руках. Настраиваем так, как требуется. Например, если нужно получить подобие работы стандартных облачных программ, то можно добавить нужные команды в сron. Допустим, раз в 5 минут.

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

Оболочку Rclone Browser можно установить так:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install rclone-browser

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

RcloneBrowser

В Rclone и Rclone Browser реализована довольно интересная функция монтирования. Можно любое облачное хранилище или отдельный каталог хранилища примонтировать в системе. С ним можно будет работать также, как с любым другим примонтированным диском в системе. В данном случае удобство работы будет определяться скоростью интернета. Функция очень полезна, если у вас на локальном диске мало места и полноценная синхронизация данных — непозволительная роскошь.


Выводы

В целом, работа с Rclone — это довольно специфичная вещь. Программа классная, но она на мой взгляд не очень подходит для десктоп. Во всяком случае, если пользоваться облаками, так как я это обычно делаю. Мне просто надо, чтобы у меня были на компьютере каталоги облаков, которые всегда синхронизированы. И не важно в каком направлении. Я не хочу об этом думать. Используя Rclone и Cron синхронизации можно добиться, но есть вероятность, что она пойдет не в ту сторону и я потеряю какие-нибудь данные.

Программа Rclone идеальна если вам необходимо целенаправленно отправлять или получать данные. Это полезно при создании бекапов и т.д. Работа с множеством аккаунтов — это очень большое преимущество. Также очень полезной может оказаться функция монтирования.

Комментарии

А оболочка может выдавать ссылку на файл?
Таких возможностей не вижу в Rclone и Rclone Browser.

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