- Облака через Rclone
- Подключение Яндекс.Диска
- Синхронизация данных
- Что дальше?
- Выводы
- Rclone Browser
- How to Install & Run Rclone as a Windows Service with AlwaysUp
- Automatically run rclone periodically, to sync your remote file systems. Start immediately after a reboot — no need to log on
- Rclone not working properly as a Windows Service?
- Rclone — мощный инструмент для работы с облачными сервисами
- Начальная конфигурация
- Резервное копирование в облачный сервис
- Миграция с одного облачного сервиса на другой
- Анализ использования хранилища
- Монтирование
- Заключение
Облака через Rclone
Дмитрий Корнев
Rclone — программа для работы с облачными хранилищами. Поддерживает Dropbox, Яндекс.Диск, Google Drive, и много других. Аккаунтов от каждого облачного хранилища можно использовать сколько угодно много. Управление через командную строку. Дополнительно существует GUI-оболочка.
Программа с открытыми исходниками. Есть в версиях под Linux, Mac OS, Windows и т.д.
Я использую Rclone в Elementary OS. Для установки скачал deb-пакет, его подхватил Eddy и готово. Настройка облаков происходит в виде мастера, требуется просто отвечать на вопросы.
Подключение Яндекс.Диска
Показывает подключенные аккаунты (или говорит, что подключенных нет) и спрашивает, что делать:
Ввел n — подсоединить новый.
Задаю название для аккаунта:
Если вы собираетесь использовать один аккаунт Яндекс, то можно просто «yandex». У меня будет несколько аккаунтов. Я называю так, чтобы мне потом было понятно. По этому имени потом будет происходить обращение к аккаунту из командной строки и т.д.
Выбираю 25 — Яндекс.Диск:
Выбираю y — чтобы соединение было настроено автоматически:
При этом меня перебрасывает в веб-браузер, где я должен авторизоваться в Яндексе и подтвердить, что разрешаю приложению получить доступ.
Всё прошло успешно, инфа получена, подтверждаем что все правильно:
Готово, вернулись в начало, где в списке аккаунтов появился новый. Можно выйти:
С подключением Dropbox все было аналогично. Подключение Google Drive отличается очень незначительно. Пара дополнительных вопросов, где можно ничего не отвечать. Другими облаками не пользуюсь.
Синхронизация данных
У меня все данные были в облаке. Локально ничего нет.
Получение всех данных из Яндекс.Диска себе на диск:
Аналогично можно поступить с аккаунтами Dropbox и Google Drive:
С хорошим интернетом получение данных происходит быстро и без проблем.
Теперь локально у себя на диске в обозначенных каталогах мы, например, что-то изменили. Чтобы засинхронизировать данные в обратном направлении:
Выгрузятся только изменения.
Внимательнее с ОТКУДА и КУДА , чтобы данные передавались строго в нужную сторону.
Название аккаунта облака вводится обязательно с двоеточием. За двоеточием можно указать путь, чтобы копировать или синхронизировать данные только в указанном каталоге. Пример:
Что дальше?
Программа делает свое дело. Данные можно получать и отправлять, аккаунты любые, в любом количестве. Далее, всё в наших руках. Настраиваем, как требуется. Например, если нужно получить подобие работы стандартных облачных программ, то можно добавить нужные команды в сron. Допустим, раз в 5 минут.
И хотя при синхронизации данных с облаками я не заметил сколько-нибудь ощутимой нагрузки на свой компьютер, дергать программу чаще не вижу смысла. Ну, опять же, это для меня так. В вашей ситуации может быть по-другому.
Оболочку Rclone Browser можно установить так:
Выглядит она неплохо. Можно работать с уже подключенными облаками. Но само подключение не реализовано. Подключение только с помощью мастера, описанным выше способом.
В Rclone и Rclone Browser реализована довольно интересная функция монтирования. Можно любое облачное хранилище или отдельный каталог хранилища примонтировать в системе. С ним можно будет работать также, как с любым другим примонтированным диском в системе. В данном случае удобство работы будет определяться скоростью интернета. Функция очень полезна если на локальном диске мало места и полноценная синхронизация данных — непозволительная роскошь.
Выводы
В целом, Rclone — это довольно специфичная вещь. Программа классная, но она на мой взгляд не очень подходит для десктоп. Во всяком случае, если пользоваться облаками так, как я это обычно делаю. Мне просто надо, чтобы у меня были на компьютере каталоги облаков, которые всегда синхронизированы. И не важно в каком направлении. Я не хочу об этом думать. Используя Rclone и Cron синхронизации можно добиться, но есть вероятность, что она пойдет не в ту сторону и я потеряю какие-нибудь данные.
Программа Rclone идеальна если вам необходимо целенаправленно отправлять или получать данные. Это полезно при создании бекапов и т.д. Работа с множеством аккаунтов — это очень большое преимущество. Также очень полезной может оказаться функция монтирования.
Rclone Browser
Rclone Browser — удобный Qt графический интерфейс (GUI) для консольной утилиты Rclone.
Rclone — универсальная консольная утилита для синхронизации данных между локальной системой и различными облачными хранилищами. Отличительной особенностью утилиты является уникальная функция, заключающаяся в возможности переноса данных из одного облачного хранилища в другое.
Rclone Browser обеспечивает полноценный доступ к большинству возможностей консольной утилиты и использует её конфигурационный файл (
/.reclone.conf), не требуя никаких дополнительных настроек. Но добавление нового «облачного сервиса» выполняется с помощью Rclone.
Rclone Browser имеет простой пользовательский интерфейс, опционально интегрируется в область уведомлений (трей), настроенные облачные хранилища могут открываться во вкладках, по окончании заданий (загрузке/выгрузке) могут отображаться всплывающие уведомления.
Из интерфейса Rclone Browser можно загружать/скачивать файлы, можно создавать новые каталоги, переименовывать и удалять файлы/каталоги (в том числе между облачными хранилищами). Для более быстрой навигации по облачным хранилищам файлы и каталоги кешируются, поддерживается обработка сразу несколько заданий.
Для всех действий с файлами и каталогами (локальными и облачными) Rclone Browser поддерживает перетаскивание (функция Drag & Drop / Перетащи и брось), поддерживается монтирование облачных хранилищ в качестве виртуальных дисков, выполнение заданий продолжается при закрытии графического интерфейса (в фоновом режиме).
Rclone Browser имеет дополнительную функцию (отсутствующую в консольной Rclone), позволяя воспроизводить медиа-файлы с облачных хранилищ без их полной загрузки, с помощью медиа-плееров поддерживающих потоковое вещание (например MPV).
Лицензия: Public Domain (публичное достояние)
How to Install & Run Rclone as a Windows Service with AlwaysUp
Automatically run rclone periodically, to sync your remote file systems. Start immediately after a reboot — no need to log on
Rclone is a free command line program that synchronizes files and directories to and from remote/cloud repositories.
To install rclone as a Windows Service with AlwaysUp:
Download and extract rclone, if necessary.
Following the documentation, run «rclone config» to setup your remote end point.
For this tutorial, we have configured an HTTP remote. We would like rclone to synchronize the files from our website to the local file system every 30 minutes.
Select Application > Add to open the Add Application window:
On the General tab:
In the Application field, enter the full path to the rclone executable, rclone.exe. Since we installed rclone in C:\rclone, we’ll use:
In the Arguments field, enter the parameters to your rclone command line. Be sure to enclose any parameter containing a space in quotes.
And in the Name field, enter the name that you will call this application in AlwaysUp. We’ve stuck with the default — Rclone.
Switch to the Logon tab and enter the user name and password of the Windows account in which you configured rclone (with «rclone config»). Rclone must run in this account so that it can find its settings.
Note: You should be able to run your service in the default system account if your command line doesn’t reference any rclone configuration names.
Click over to the Restart tab. To run rclone every 30 minutes, select the Not immediately and the On the next hour or half-hour options.
And to avoid AlwaysUp complaining as rclone constantly starts and stops, check the Minimize event logging. box.
And finally, to capture rclone’s output for later review, switch to the Extras tab and activate the Capture output. option. Specify the full path to the text file that will capture the command line messages.
We’re now done configuring rclone as a service, so click the Save button to record your settings. In a couple of seconds, an application called Rclone (or whatever you called it) will show up in the AlwaysUp window. It is not yet running though and the state will be Stopped:
To start rclone, choose Application > Start «Rclone» from the menu. The state will transition to Running (or Waiting if rclone runs quickly):
After rclone runs, AlwaysUp will queue up the next run at the hour or half-hour. Click the «Waiting» status icon to see the details:
That’s it! Next time your computer boots, your rclone service will be launched immediately, before anyone logs on.
Feel free to edit the entry in AlwaysUp and add more advanced options. For example, lower the priority of the rclone process, email a weekly activity report, and much more.
Rclone not working properly as a Windows Service?
If you captured rclone’s output (step 8), check the file to see if any errors or warnings were reported.
We suggest adding the verbose flag (—verbose) to the rclone command line, to receive detailed information on the syncronization. Here is what our output file looks like with the flag applied:
Can you run the rclone command line, regularly from a command prompt? Perhaps your configuration (or access to the remote repository) has changed.
Consult the AlwaysUp Troubleshooter — our online tool that can help you resolve the most common problems encountered when running an application as a windows service.
From AlwaysUp, select Application > Report Activity > Today to bring up an HTML report detailing the interaction between AlwaysUp and Rclone. The AlwaysUp Event Log Messages page explains the messages that may appear.
Browse the AlwaysUp FAQ for answers to commonly asked questions and troubleshooting tips.
Rclone — мощный инструмент для работы с облачными сервисами
Есть множество сценариев использования облачных сервисов: кто-то использует двухстороннюю синхронизацию с облаком чтобы иметь одинаковый набор файлов на нескольких устройствах, кто-то использует облако для хранения резервных копий.
Также иногда возникают разовые задачи: например перенос данных с одного облачного сервиса на другой. Далеко не все задачи можно решить с помощью «официальных» клиентов и тут на помощь приходят сторонние инструменты. Об одном из них — rclone — и пойдёт речь далее.
Rclone это мощный инструмент для работы с облачными сервисами, чем-то напоминающий rsync. Список поддерживаемых облачных сервисов весьма внушителен и на момент публикации он такой:
В качестве основного функционала разработчики отмечают:
- Проверка целостности файлов по хэшам MD5/SHA1.
- Сохранение временных меток создания/изменения файлов.
- Поддержка частичной синхронизации.
- Копирование только новых файлов.
- Синхронизация (односторонняя).
- Проверка файлов (по хэшам).
- Возможность синхронизации из одного облачного аккаунта в другой.
- Поддержка шифрования.
- Поддержка локального кэширования файлов.
- Возможность монтирования облачных сервисов через FUSE.
RClone есть в репозиториях Ubuntu начиная Ubuntu Cosmic (17.10) однако на сайте проекта доступна более новая версия и потому ставить будем её:
Начальная конфигурация
Для начала надо «соединить» rclone с теми облачными сервисами, с которыми вы хотите работать. Делается это в интерактивном меню, вызываемом командой:
К сожалению rclone на данный момент не поддерживает настройку подключений на машинах без запущенного X-сервера. Поэтому если вы планируете использовать rclone на такой машине то сначала надо настроить rclone на машине с X-сервером, а потом перенести её на машину без X-сервера. Во время настройки каждому соединению с облачным сервисом присваивается определённое имя. С каждым облачным сервисом можно иметь любое количество соединений. Список доступных имён соединений можно просмотреть командой:
Далее мы будем предполагать что у пользователя настроено три соединения: «GoogleDrive», «OneDrive» и «YandexDrive» соответственно с сервисами Goolge Drive, Microsoft One Drive и Яндекс Диск. Перейдём к рассмотрению возможностей rclone и примеров задач, которые можно решить с помощью этого инструмента.
Резервное копирование в облачный сервис
Самая проста задача, которая часто встречается на серверах: залить архив с резервной копией в облачной сервис. С помощью rclone это можно сделать командой вида:
Данная команда копирует файл «/tmp/backup-20180921.tar.bz2» в директорию «Backups» на Google-диске. Если директория не существует — она будет создана. Вместо «GoogleDrive» можно подставить имя любого другого соединения и файл будет скопирован в соответствующее хранилище.
Следующая задача: синхронизировать изменения в определённой папке в облако (новые и изменённые файлы залить, удалённые локально — удалить). Здесь можно использовать команду вида:
Миграция с одного облачного сервиса на другой
Rclone действительно мощный инструмент. Если вы решите перенести все свои данные или их часть с одного облачного сервиса в другой (или с одного аккаунта на другой в том же сервисе) то нет ничего невозможного. Например полностью скопировать содержимое Google-диска в Яндекс-диск можно командой вида:
Скопировать только определённую папку:
Следует отметить что при копировании данные не передаются на прямую из одного сервиса в другой, а сначала скачиваются на локальный компьютер, и потом с него передаются во второй сервис. Поэтому скорость передачи зависит от скорости вашего интернета. Также следует иметь это иметь ввиду пользователям тарифов с небезлимитным трафиком.
Анализ использования хранилища
С помощью rclone можно анализировать использование хранилища. Для этого есть сразу несколько функций. Во-первых можно вывести полный список файлов и директорий в виде дерева командой:
К сожалению в дереве не отображается размер файлов и директорий. Однако и тут есть решение: rclone умеет отображать дерево директорий точно так же как в приложении ncdu. Для этого можно использовать команду:
Монтирование
С помощью RClone можно подмонтировать удалённое хранилище (или его часть) в локальное дерево. Функционал считается экспериментальным, однако за время тестирования серьёзных проблем выявлено не было. Монтируется хранилище примерно так:
Отмонтировать хранилище можно командой:
Работа с подмонтированным хранилищем происходит почти так же как с локальными файлами и единственное отличие в некоторой задержке при открытии/сохранении файлов, которая вызвана необходимостью скачивать/заливать файлы. Кэширование тут помогает слабо. Но в целом режим всё равно очень удобен, особенно если у вас быстрый интернет или вы никуда не торопитесь:)
Заключение
RClone это действительно мощный инструмент для работы с облачными хранилищами, полное рассмотрение функционала которого займёт не одну статью. Желающим подробнее изучить возможности стоит начать с официального сайта проекта. Из интересных возможностей не рассмотренными остались как минимум шифрование, кэширование и сверка по хэшам.