Rclone - мощный инструмент для работы с облачными сервисами

Вы используете AdBlock. Этот сайт существует за счёт доходов от рекламы. Мы будем благодарны если вы отключите AdBlock на страницах нашего сайта.

()

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

Также иногда возникают разовые задачи: например перенос данных с одного облачного сервиса на другой. Далеко не все задачи можно решить с помощью "официальных" клиентов и тут на помощь приходят сторонние инструменты. Об одном из них - rclone - и пойдёт речь далее.

Rclone это мощный инструмент для работы с облачными сервисами, чем-то напоминающий rsync. Список поддерживаемых облачных сервисов весьма внушителен и на момент публикации он такой:

В качестве основного функционала разработчики отмечают:

  • Проверка целостности файлов по хэшам MD5/SHA1.
  • Сохранение временных меток создания/изменения файлов.
  • Поддержка частичной синхронизации.
  • Копирование только новых файлов.
  • Синхронизация (односторонняя).
  • Проверка файлов (по хэшам).
  • Возможность синхронизации из одного облачного аккаунта в другой.
  • Поддержка шифрования.
  • Поддержка локального кэширования файлов.
  • Возможность монтирования облачных сервисов через FUSE.

RClone есть в репозиториях Ubuntu начиная Ubuntu Cosmic (17.10) однако на сайте проекта доступна более новая версия и потому ставить будем её:

wget https://downloads.rclone.org/rclone-current-linux-amd64.deb
apt install ./rclone-current-linux-amd64.deb

Начальная конфигурация

Для начала надо "соединить" rclone с теми облачными сервисами, с которыми вы хотите работать. Делается это в интерактивном меню, вызываемом командой:

rclone config

К сожалению rclone на данный момент не поддерживает настройку подключений на машинах без запущенного X-сервера. Поэтому если вы планируете использовать rclone на такой машине то сначала надо настроить rclone на машине с X-сервером, а потом перенести её на машину без X-сервера. Во время настройки каждому соединению с облачным сервисом присваивается определённое имя. С каждым облачным сервисом можно иметь любое количество соединений. Список доступных имён соединений можно просмотреть командой:

rclone listremotes

Пример использования rclone для получения занятного места в облачных сервисах

Далее мы будем предполагать что у пользователя настроено три соединения: "GoogleDrive", "OneDrive" и "YandexDrive" соответственно с сервисами Goolge Drive, Microsoft One Drive и Яндекс Диск. Перейдём к рассмотрению возможностей rclone и примеров задач, которые можно решить с помощью этого инструмента.

Резервное копирование в облачный сервис

Самая проста задача, которая часто встречается на серверах: залить архив с резервной копией в облачной сервис. С помощью rclone это можно сделать командой вида:

rclone copy /tmp/backup-20180921.tar.bz2 GoogleDrive:/Backups/

Данная команда копирует файл "/tmp/backup-20180921.tar.bz2" в директорию "Backups" на Google-диске. Если директория не существует - она будет создана. Вместо "GoogleDrive" можно подставить имя любого другого соединения и файл будет скопирован в соответствующее хранилище.

Следующая задача: синхронизировать изменения в определённой папке в облако (новые и изменённые файлы залить, удалённые локально - удалить). Здесь можно использовать команду вида:

rclone sync --delete-after $HOME/Work YandexDrive:/MyWork

Миграция с одного облачного сервиса на другой

Rclone действительно мощный инструмент. Если вы решите перенести все свои данные или их часть с одного облачного сервиса в другой (или с одного аккаунта на другой в том же сервисе) то нет ничего невозможного. Например полностью скопировать содержимое Google-диска в Яндекс-диск можно командой вида:

rclone sync GoogleDrive:/ YandexDrive:/

Скопировать только определённую папку:

rclone sync GoogleDrive:/Work YandexDrive:/Work

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

Анализ использования хранилища

С помощью rclone можно анализировать использование хранилища. Для этого есть сразу несколько функций. Во-первых можно вывести полный список файлов и директорий в виде дерева командой:

rclone tree OneDrive:/Images

Пример использования rclone tree

К сожалению в дереве не отображается размер файлов и директорий. Однако и тут есть решение: rclone умеет отображать дерево директорий точно так же как в приложении ncdu. Для этого можно использовать команду:

rclone ncdu OneDrive:/Images

Пример использования rclone ncdu

Монтирование

С помощью RClone можно подмонтировать удалённое хранилище (или его часть) в локальное дерево. Функционал считается экспериментальным, однако за время тестирования серьёзных проблем выявлено не было. Монтируется хранилище примерно так:

mkdir -p $HOME/OneDriveImages
rclone --vfs-cache-mode full --daemon OneDrive:/Images $HOME/OneDriveImages

Отмонтировать хранилище можно командой:

fusermount -u $HOME/OneDriveImages

Работа с подмонтированным хранилищем происходит почти так же как с локальными файлами и единственное отличие в некоторой задержке при открытии/сохранении файлов, которая вызвана необходимостью скачивать/заливать файлы. Кэширование тут помогает слабо. Но в целом режим всё равно очень удобен, особенно если у вас быстрый интернет или вы никуда не торопитесь:)

Заключение

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

На этом пока всё. Приятной работы!

Ключевые слова: rclone, ncdu, google drive, one drive, onedrive, sync.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

Комментарии:

Anonymous 2018-09-21 09:28:43 (#)

а мейлрушки нет :-(

MooSE 2018-09-21 10:32:07 (#)

а мейлрушки нет :-(
RClone поддерживает WebDav. А Mail.Ru он есть. Правда только для платных пользователей.

zagorodnov 2019-11-03 03:58:35 (#)

Недавно добавили Mail.ru - https://rclone.org/mailru/
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2025 Вадим Калинников aka MooSE
Политика конфиденциальности