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

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

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

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

Установка rclone

В нашем примере мы будем работать с Linux. Для установки достаточно ввести команду:

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

Если в нашей системе нет curl, мы получим ошибку. Установка курл выполняется из репозитория.

а) для deb:

apt install curl

б) для rpm:

yum install curl

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

...
rclone v1.59.2 has successfully installed.
Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.

* в нашем примере установлен rclone версии 1.59.2.

Мы готовы к работе с rclone.

SSH

SSH является наиболее востребованным для передачи данных. 

Для настройки вводим команду:

rclone config

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

n/s/q> n

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

name> SSH

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

39 / SSH/SFTP
   \ (sftp)

Storage> 39

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

host> backup2.ssh.com

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

user> user22

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

port> 22

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

Option pass.
SSH password, leave blank to use ssh-agent.
Choose an alternative below. Press Enter for the default (n).
y) Yes, type in my own password
g) Generate random password
n) No, leave this optional password blank (default)
y/g/n> y

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

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

На следующие вопросы можно не отвечать, просто нажимая Enter:

key_pem> 

key_file> 

y/g/n> 

pubkey_file> 

key_use_agent> 

use_insecure_cipher> 

disable_hashcheck> 

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

В конце мы увидим сводную информацию о добавляемой конфигурации. Если все верно, нажимаем Enter или вводим y:

Configuration complete.
Options:
- type: sftp
- host: backup2.ssh.com
- user: user22
- pass: *** ENCRYPTED ***
Keep this "SSH" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Выходим из консоли настройки rclone:

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

Проверить подключение и посмотреть содержимое SSH-каталога можно командой:

rclone ls SSH:

* где SSH — имя нашего соединения.

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

FTP

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

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

rclone config

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

n/s/q> n

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

name> BackupFTP

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

16 / FTP
   \ (ftp)

Storage> 16

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

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

host> backup2.ftp.com

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

user> user21

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

port> 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:

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, то сначала переходим в каталог, куда скопировали утилиту.

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

n/s/q> n

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

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 копирует по-кругу один файл

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

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

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

# Резервное копирование
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет