Примеры настройки утилиты rclone для копирования информации в облачные хранилища

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: Rclone.

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

FTP

Выполним синхронизацию данных с удаленным каталогом на сервере FTP.

Переходим в режим конфигурирования rclone:

rclone config

Создаем новую конфигурацию:

Даем понятное название для нашего соединения:

name> BackupFTP

Среди списка возможных шаблонов выбираем FTP Connection:

13 / FTP Connection
    «ftp»

Storage> 13

* на момент обновления инструкции данный шаблон находится под номером 13.

Указываем адрес сервера FTP:

host> backup2.ftp.com

Имя учетной записи для подключения к серверу FTP:

user> user21

Порт (как правило, это 21):

На запрос использования пароля, отвечаем y (ввести свой пароль):

FTP password
y) Yes type in my own password
g) Generate random password
y/g> y

И дважды вводим пароль для подключения к FTP-серверу:

Enter the password:
password:
Confirm the password:
password:

Если удаленный сервер для подключения требует TLS, в соответствующей опции задаем значение true:

explicit_tls> true

* в противном случае оставляем поле незаполненным или ставим false.

На остальные опции отвечаем по умолчанию, нажимая Enter.

Подтверждаем, что ранее введенные данные верны:

y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Готово. Мы можем посмотреть содержимое каталога на сервере FTP:

rclone ls «BackupFTP»:

* обратите внимание, что так как название в данном примере задано с пробелами, мы пишем его в кавычках.

Готово. Действия, которые можно выполнить описаны ниже.

Пример дополнительный параметров:

При конфигурировании FTP система запрашивает, хотим ли мы сконфигурировать дополнительные параметры. Если нажать да:

Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> y

… та нам будут заданы дополнительные вопросы. Среди который, наиболее интересен про проверку валидации сертификата:

no_check_certificate> true

Очень часто, при настройке TLS на FTP-сервере используют самоподписанный сертификат. Данная опция позволит rclone не завершать работу с ошибкой при проверке валидности сертификата.

Яндекс диск

Для работы с яндекс диском необходима авторизация через браузер (OAuth). Для того, чтобы запустить утилиту на сервере без графики, мы должны сначала установить rclone на компьютер с GUI (это может быть Windows или Linux Desktop).

Скачать программу можно на официальном сайте.

И так, на компьютере с браузером запускаем конфигурацию утилиты:

rclone config

* если запускаем в Windows, то сначала переходим в каталог, куда скопировали утилиту.

Создаем новую конфигурацию:

Даем понятное название для нашего соединения:

name> YandexDisk

Среди списка возможных шаблонов выбираем Yandex Disk:

39 / Yandex Disk
    «yandex»

Storage> 39

* на момент обновления инструкции данный шаблон находится под номером 39.

Идентификатор клиента и пароль оставляем пустыми:

client_id> 

client_secret>

На запрос внесениея расширенных настроек отвечаем отрицательно:

Edit advanced config?
y) Yes
n) No (default)
y/n> n

На вопрос использования автоконфигурации отвечаем y>:

Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine

y) Yes (default)
n) No
y/n> y

Откроется окно браузера — вводим наши логин и пароль для доступа к Яндекс диску. В следующем окне кликаем по Log in as …:

Подтверждаем использование нашей учетной записи для доступа к Яндекс диску

Мы должны увидеть сообщение об успешном прохождении аутентификации OAuth:

Success!

Закрываем браузер. Выходим из конфигурирования rclone:

e/n/d/r/c/s/q> q

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

а) в системах на базе Linux:

cat ~/.config/rclone/rclone.conf

б) для систем Windows:

type %USERPROFILE%.rclone.conf

Мы увидим что-то на подобие:

[YandexDisk]
type = yandex
token = {«access_token»:»AQAE5oIyAALSwlFhI9k0ssqBbqEyY»,»token_type»:»bearer»,»refresh_token»:»1:Jmlj4bnDSJIPvL:bsnTE1lkzA_5ZjikoExn2zWQIab0qReJJdAQtZnPd3:51Fx5SUiuKS8ZAtw»,»expiry»:»2022-10-29T15:29:05.484212934+03:00″}

* конфигураций может быть несколько — нас интересует yandex с тем именем, которое мы задавали в настройке.

Копируем содержимое и переходим на целевой сервер. 

Открываем конфигурационный файл для rclone:

vi ~/.config/rclone/rclone.conf

* если в нашей системе уже есть конфигурационный файл и его путь отличается от нашего, то можено ввести команду:

rclone —help | grep -e ‘—config’

… которая покажет путь до него.

Ввносим содержимое, которое скопировали, например:

[YandexDisk]
type = yandex
token = {«access_token»:»AQAE5oIyAALSwlFhI9k0ssqBbqEyY»,»token_type»:»bearer»,»refresh_token»:»1:Jmlj4bnDSJIPvL:bsnTE1lkzA_5ZjikoExn2zWQIab0qReJJdAQtZnPd3:51Fx5SUiuKS8ZAtw»,»expiry»:»2022-10-29T15:29:05.484212934+03:00″}

Готово, можно проверить командой:

rclone lsd YandexDisk:

Полезные команды для работы с Rclone 

Просмотр списка контейнеров в хранилище:

rclone lsd [remote]:

Создание нового контейнера:

rclone mkdir [remote]:[имя контейнера]

Просмотр списка файлов в контейнере:

rclone ls [remote]:[имя контейнера]

Копирование файлов с локальной машины в хранилище:

rclone copy /home/local/directory [remote]:[имя контейнера]

Синхронизация файлов на локальной машине и в хранилище:

rclone sync /home/local/directory [remote]:[имя контейнера]

Синхронизация файлов в хранилище с файлами на локальной машине:

rclone sync [remote]:[имя контейнера] /home/local/directory

При выполнении операций копирования и синхронизации rclone проверяет все файлы по дате и времени изменения или md5-сумме. Из директории-источника в директорию назначения передаются те файлы, которые были изменены.

Возможные проблемы

Пока, я столкнулся с единственной проблемой.

Rclone копирует по-кругу один файл

В моем случае, программа копировала все данные на удаленное хранилище и после этого, вместо того, чтобы завершить работу, начинала копировать файл(ы) по новой.

Причина: как выяснилось, проблема в версии приложения.

Решение: в моем случае, помогла установка более ранней версии приложения. Список можно увидеть на официальном сайте.