Поиск по сайту:

Rclone — синхронизация каталогов файлов из разных облачных хранилищ


Rclone — это программа командной строки, написанная на языке Go, используемая для синхронизации файлов и каталогов от различных поставщиков облачных хранилищ, таких как: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, облачное хранилище Google, Google Диск и т. д.

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

Rclone имеет следующие функции

  • Хэш-проверка MD5/SHA1 постоянно проверяет целостность файла.
  • Временные метки сохраняются в файлах.
  • Частичная синхронизация поддерживается для всего файла.
  • Режим копирования новых или измененных файлов.
  • Один из способов синхронизации, чтобы сделать каталог идентичным.
  • Режим проверки – проверка равенства хешей.
  • Возможна синхронизация с сетью и из нее, например, с двумя разными облачными учетными записями.
  • (Шифрование) серверная часть.
  • (Кэш) серверная часть.
  • (Союз) бэкэнд.
  • Дополнительное крепление FUSE (крепление rclone).

Как установить rclone в системах Linux

Установку rclone можно выполнить двумя разными способами. Самый простой вариант — использовать сценарий установки, введя следующую команду.

curl https://rclone.org/install.sh | sudo bash

Этот скрипт проверяет тип ОС, на которой он запущен, и загружает архив, относящийся к этой ОС. Затем он извлекает архив и копирует двоичный файл rclone в /usr/bin/rclone и предоставляет этому файлу разрешения 755.

В итоге, когда установка завершится, вы должны увидеть следующую строку:

Rclone v1.44 has successfully installed.
Now run “rclone config” for setup, Check https://rclone.org/docs/ for  more details.

Второй способ установить rclone — ввести следующие команды.

curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64

Теперь скопируйте двоичный файл и дайте ему права на выполнение.

cp rclone /usr/bin/
chown root:root /usr/bin/rclone
chmod 755 /usr/bin/rclone

Установите справочную страницу rclone.

mkdir -p /usr/local/share/man/man1
cp rclone.1 /usr/local/share/man/man1/
mandb 

Как настроить rclone в системах Linux

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

rclone config

Вы увидите следующую подсказку:

2018/11/13 11:39:58 NOTICE: Config file “/home/user/.config/rclone/rclone.conf” not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q>

Возможные варианты:

  • n) – создать новое удаленное соединение.
  • s) – установите защиту паролем для вашей конфигурации.
  • q) – выйти из конфига

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

Я назвал соединение "Google" и выбрал "Google Drive", который находится под номером 12. На остальные вопросы вы можете ответить, просто оставив ответ по умолчанию — пустой “ ”.

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

Процесс выглядит примерно так:

Google Application Client Secret - leave blank normally.
client_secret>
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
 1 / Full access all files, excluding Application Data Folder.
   \ "drive"
 2 / Read-only access to file metadata and file contents.
   \ "drive.readonly"
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
   \ "drive.file"
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
   \ "drive.appfolder"
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
   \ "drive.metadata.readonly"
scope> 1
ID of the root folder - leave blank normally.  Fill in to access "Computers" folders. (see docs).
root_folder_id> 
Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
service_account_file>
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> 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
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[remote]
client_id = 
client_secret = 
scope = drive
root_folder_id = 
service_account_file =
token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2018-11-13T11:57:58.955387075Z"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Как использовать rclone в системах Linux

Rclone имеет довольно длинный список доступных опций и команд, которые можно использовать. Мы постараемся осветить некоторые наиболее важные из них:

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

rclone lsd <remote-dir-name>:

Скопируйте данные с помощью rclone

rclone copy source:sourcepath dest:destpath

Обратите внимание: если rclone обнаружит дубликаты, они будут проигнорированы:

Синхронизировать данные с помощью rclone

Если вы хотите синхронизировать некоторые данные между каталогами, вам следует использовать rclone с командой sync.

Команда должна выглядеть так:

rclone sync source:path dest:path [flags]

В этом случае источник синхронизируется с пунктом назначения, при этом меняется только пункт назначения! Этот метод пропускает неизмененные файлы. Поскольку команда может привести к потере данных, вы можете использовать ее с “–dry-run”, чтобы увидеть, что именно будет скопировано и удалено.

Переместить данные с помощью rclone

Для перемещения данных вы можете использовать rclone с командой move. Команда должна выглядеть так:

rclone move source:path dest:path [flags]

Содержимое источника будет перемещено (удалено) и помещено в выбранное место назначения.

Другие полезные команды rclone

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

rclone mkdir remote:path

Чтобы удалить каталог.

rclone rmdir remote:path

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

rclone check source:path dest:path

Удалить файлы:

rclone delete remote:path

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

rclone --min-size 100M delete remote:path

Настоятельно рекомендуется просмотреть руководство и справку по каждой команде, чтобы максимально эффективно использовать rclone. Полная документация rclone доступна по адресу: https://rclone.org/.

Заключение

rclone — это мощная утилита командной строки, которая поможет вам управлять данными между различными поставщиками облачных хранилищ. Хотя в этой статье мы коснулись лишь поверхности возможностей rclone, с его помощью можно достичь гораздо большего, особенно при использовании в сочетании со службой cron (например).