Rclone з нуля для освоєння хмарних резервних копій, шифрування та автоматизації

  • Rclone централізує управління більш ніж 70 хмарами за допомогою команд, подібних до rsync, прозорого шифрування та монтування через FUSE/VFS.
  • «Віддалені» дозволяють поєднувати Google Диск, S3, B2 або WebDAV, додавати шари криптографії та автоматизувати резервне копіювання за допомогою cron або systemd.
  • Такі параметри, як --transfers, --fast-list, --bwlimit та режими VFS, дозволяють точно налаштувати продуктивність, квоти та використання ресурсів.
  • Шифрування віддалених пристроїв та самого файлу rclone.conf є ключем до захисту облікових даних та даних, особливо на VPS, Raspberry Pi та спільних серверах.

Rclone з нуля синхронізує, шифрує та автоматизує резервне копіювання в хмарі

Rclone став швейцарським ножем хмарного сховища Для тих, хто хоче перестати боротися з посередніми офіційними клієнтами, користувацькими скриптами та абсурдними обмеженнями провайдерів. За допомогою одного бінарного файлу та синтаксису, дуже схожого на rsync, ви можете керувати резервними копіями, синхронізаціями, монтуваннями та шифруванням у понад 70 сервісах: Google Drive, OneDrive, Dropbox, S3, Backblaze B2, Wasabi, pCloud, MEGA, Proton Drive, Nextcloud, WebDAV, SFTP... і багато іншого.

Перевага Rclone полягає в тому, що він не обмежується лише «копіюванням файлів у хмару».Він розуміє кожен сервер, використовує API для підвищення швидкості, забезпечує прозоре шифрування, монтування FUSE, планування резервного копіювання та кросхмарні операції без доступу до вашого диска. Від ноутбука macOS або Raspberry Pi з невеликим диском до багатотерабайтного робочого сервера, ви можете створити надійну, зашифровану та автоматизовану стратегію резервного копіювання, якщо розумієте її компоненти.

Що таке Rclone і чому він цікавіший за rsync для хмари?

Rclone — це інструмент командного рядка з відкритим кодом. Розроблений спеціально для роботи з віддаленими та хмарними сховищами, Rclone відрізняється від rsync, який орієнтований на локальні або віддалені файли через SSH. Rclone розуміє API таких сервісів, як Google Drive, S3 та Dropbox, керує їхніми обмеженнями, квотами та специфічними функціями, а також пропонує команди високого рівня для перегляду, копіювання, синхронізації, монтування та обслуговування контенту.

Його часто описують як «rsync для хмари»Але насправді це йде набагато далі: підтримує понад 70 провайдерів, інтегрує рівні шифрування (бекенд) склеп), віртуальна файлова система (VFS) для стабільних збірок, модуль чанкер для розділення великих файлів та рівень абстракції бекенду, який забезпечує однакову роботу тієї ж команди на Google Диску, S3, B2 або SFTP.

Порівняно з rsync, Rclone перевершує його в кількох аспектах.може скористатися перевагами багатопотокової передачі (--multi-thread-streams та параметри --transfers / --checkersі зазвичай досягає швидкості в кілька разів вищої, коли вузьким місцем є хмарні API. Крім того, він розуміє такі концепції, як сміття, версії, щоденні квоти та ліміти запитів, і надає спеціальні прапорці для оптимізації кожного постачальника без будь-яких порушень.

На рівні внутрішньої архітектуриЦе єдиний бінарний файл, який включає ядро ​​(Rclone Core) та кілька рівнів: VFS для монтування та кешування, Crypt для шифрування на стороні клієнта, Chunker для фрагментації великих файлів та набір бекендів, які реалізують специфічну комунікацію з кожним сервісом (S3/R2, Google Drive, B2, WebDAV, SFTP тощо). Така модульність дозволяє поєднувати, наприклад, віддалений сервер S3 з рівнем crypt, а потім монтувати його через FUSE.

Підтримувані служби зберігання даних та типові випадки використання

Послуги, що підтримуються Rclone

Каталог послуг, що підтримуються Rclone, величезний.Однак, корисно отримати короткий огляд найпоширеніших з них, щоб правильно організувати резервне копіювання.

Для повсякденних користувачів Зазвичай вони виділяють:

  • Google Диск / Google Фото: для особистих та бізнес-акаунтів, зокрема спільних дисків (командних дисків).
  • Microsoft OneDrive та SharePoint: як особисті, так і ділові.
  • Dropbox, Box, MEGA, pCloud, Proton Drive: широко використовується для особистих резервних копій, фотографій, документів та невеликих сховищ.

У професійному середовищі та середовищі розробників Звичайним способом використання сховища для об'єктів є:

  • Amazon S3 та сумісні (MinIO, Wasabi, Ceph, Oracle тощо) для резервних копій, статичного та архівного контенту.
  • Хмарне сховище Google, Azure Blob y Cloudflare R2 якщо ви вже перебуваєте в цих екосистемах.
  • Backblaze B2 як дешева альтернатива для великих обсягів холодних даних.

Для самостійно розміщених та домашніх серверівRclone чудово поєднується з:

  • SFTP/FTP проти інших серверів.
  • WebDAV для Nextcloud / ownCloud.
  • SMB / CIFS y HTTP коли вам потрібно інтегрувати NAS та веб-сервери.

Поширена ідея полягає в об'єднанні кількох хмар за допомогою "Union".Ви створюєте пульт дистанційного керування union: які групи, наприклад, gdrive:, onedrive: y dropbox:і ви працюєте так, ніби це єдина гігантська файлова система. Дуже корисно для використання безкоштовних облікових записів або розподілу резервних копій між різними провайдерами.

Вимоги, базова інсталяція та оновлення

Rclone легкий, але не чарівнийНа невеликому VPS або Raspberry Pi з невеликою кількістю оперативної пам'яті важливо знати його вимоги, щоб уникнути перевантаження агресивними налаштуваннями або великою кількістю паралельних передач.

На апаратному та системному рівні, як розумне посилання:

  • Мінімум оперативної пам'яті512 МБ (2 ГБ або більше для монтувань з агресивним кешуванням VFS).
  • центральний процесор1 віртуального процесора достатньо, але з 2+ ви краще помітите паралельні передачі.
  • ЗберіганняБінарний файл займає мало місця, але для кешу може знадобитися 1 ГБ або більше залежно від параметрів.
  • ЯдроПрацює, починаючи з версії 3.10; із сучасними ядрами (5.4+) та FUSE3 збірки працюють плавніше.

Що стосується встановлення, у вас є кілька варіантів. залежно від того, що ви надаєте перевагу: зручність, контроль версій чи відтворюваність.

Офіційний скрипт (Linux, рекомендується бути в курсі останніх новин):

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

Ручне встановлення за допомогою пакета .deb на Debian/Ubuntu:

wget https://downloads.rclone.org/v1.71.0/rclone-v1.71.0-linux-amd64.deb
sudo dpkg -i rclone-v1.71.0-linux-amd64.deb
sudo apt -f install   # si pide dependencias

На macOS Homebrew є найзручнішим варіантом.:

brew install rclone
rclone version --check

У Windows ви можете вибрати між інсталятором, winget або Chocolatey.:

  • Завантаження ZIP-файлу та вихід rclone.exe en C:\rclone\ і додаючи його до Шлях.
  • З крильцем:
    winget install Rclone.Rclone
  • З шоколадом:
    choco install rclone
    choco install winfsp
    (для складання вузлів)

У всіх випадках оновлення таке ж просте, як запустити:

rclone selfupdate

Перші кроки: концепція «віддаленого» та інтерактивного налаштування

Базовим блоком у Rclone є «пульт дистанційного керування»Запис конфігурації, який описує, як підключитися до певної служби. Наприклад, gdrive: для особистого Google Диска, s3-backup: для відра S3 або nombre_en: для зашифрованої папки.

Все керується з боку асистента. rclone config, що зберігає налаштування за замовчуванням у ~/.config/rclone/rclone.conf у форматі INI. Цей файл – золото: обов’язкова резервна копія (а ще краще – шифрування).

Короткий приклад: створення віддаленого керування Google Диском на комп’ютері за допомогою браузера:

rclone config
# n) New remote
# name> gdrive
# Storage> drive
# client_id>      (vacío para usar el cliente por defecto de rclone)
# client_secret> (vacío)
# scope> 1       (acceso completo)
# service_account_file>  (vacío)
# Edit advanced config? n
# Use auto config? y   (abre el navegador, inicias sesión y aceptas permisos)

На сервері без графічного середовища фільм трохи змінюється.Коли з’явиться запит, чи хочете ви використовувати автоматичні налаштування, виберіть nВам буде показана така команда:

rclone authorize "drive"

Ви виконуєте цю команду на своєму настільному комп'ютері., якщо у вас є браузер, ви авторизуєте обліковий запис і копіюєте отриманий JSON-токен, щоб вставити його на сервер, коли з’явиться запит (config_token> {...}). Завдяки цьому у вас є функціональний пульт дистанційного керування, навіть якщо сервер безголовий.

Приклад з реального життя: необмежений та зашифрований спільний Google Диск

Деякий час поширювалися посилання для створення «необмежених» спільних дисків на Google Диску. пов'язані з університетами та подібними установами. Ті, хто скористався цим трюком, часто використовують їх як «криницю» для надсилання великих обсягів мультимедійних даних зі свого сервера або Raspberry Pi.

Типовий робочий процес використання одного з цих пристроїв з Rclone це:

  • Отримати Ідентифікатор спільного диска ввівши його через браузер та скопіювавши останню частину URL-адреси (щось на кшталт 0AKXXD2qTbW50Uk9PVA).
  • Створіть звичайний пульт дистанційного керування Google Диском (Storage> drive) і в полі root_folder_id>, вставте цей ідентифікатор.
  • Коли Rclone запитає, чи слід розглядати його як командний диск, дайте відповідь «так» і виберіть потрібний диск.

Щойно ви отримаєте доступ до цього диска, наступним логічним кроком буде його шифрування.Тому що ви насправді не знаєте, хто ще може побачити ці дані на іншому кінці. Ось тут і з'являється бекенд. склеп.

Створіть зашифрований шар поверх цього спільного диска Це було б приблизно так:

  • Де нуево rclone configНовий пульт → наприклад, ім'я nombre_en.
  • Виберіть Сховище > крипта.
  • En remote> надягати nombre: o nombre:carpeta/, який є попереднім віддаленим керуванням (той, що з Диска), що вказує на папку.
  • Виберіть filename_encryption = стандартне y шифрування_назви_каталогу = true щоб імена файлів і каталогів також були обфусковані.
  • Згенеруйте один або два надійних пароля (password та salt) вручну або за допомогою вбудованого генератора.

Відтоді все, що ви завантажуєте до nombre_en: буде зашифровано А на вебсайті Google Диска ви побачите дивні та нечитабельні назви. Тільки Rclone з цими ключами може перекласти їх назад.

Основні команди: список, копіювання, синхронізація та видалення

Rclone з нуля: синхронізація, шифрування та автоматизація резервних копій у хмарі

Загальний синтаксис Rclone досить послідовний.: rclone <subcomando> origen destino [flags]Хитрощі полягають у тому, щоб засвоїти кілька команд і кілька ключових опцій.

Щоб ознайомитися з віддаленим доступом та контентом ти маєш:

  • rclone listremotes: відображає всі налаштовані пульти дистанційного керування.
  • rclone ls remote:: список файлів з розміром.
  • rclone lsd remote:лише каталоги/кошики.
  • rclone tree remote: o rclone tree remote:carpeta -d побачити деревоподібну структуру.
  • rclone ncdu remote:тип інтерфейсу ncdu щоб побачити розмір усього, не заблукавши.

Копіювати без видалення чого-небудь у місці призначення Це зроблено з copy:

# Local → nube
rclone copy /home/usuario/fotos drive:fotos/verano -P

# Nube → local
rclone copy gdrive:Documentos/ ~/Documentos/ -P

# Nube → nube (server-side cuando el backend lo permite)
rclone copy gdrive:proyecto/ s3-backup:proyecto/ -P

Синхронізація (дзеркалювання) здійснюється за допомогою syncІ тут нам потрібно бути обережними.тому що він видаляє з пункту призначення те, чого більше немає у вихідному місці:

# Sincronización unidireccional
rclone sync /srv/data onedrive:data -P

# Simulación sin tocar nada
rclone sync /srv/data onedrive:data --dry-run

Для очисних операцій Є кілька корисних команд:

  • rclone delete remote:carpeta: видаляє файли зі шляху, залишає каталоги.
  • rclone purge remote:carpeta: видаляє шлях та весь його вміст.
  • rclone rmdirs remote: --leave-root: видаляє порожні каталоги.
  • rclone cleanup drive:: очистити кошик (наприклад, на Google Диску).

Найважливіші перехресні прапори Ті, які ви будете використовувати постійно:

  • -P o --progress щоб побачити прогрес.
  • -v, -vv y --log-level щоб збільшити багатослівність.
  • --transfers N y --checkers N контролювати паралелізм.
  • --bwlimit обмежувати пропускну здатність, навіть часовими інтервалами ("08:00,1M 18:00,off").
  • --include, --exclude y --filter-from для точного налаштування того, що копіюється.

Монтувати хмару так, ніби це окремий диск (FUSE / VFS)

Одна з головних функцій Rclone — монтування віддалених пристроїв як файлових систем.Це неймовірно корисно для Plex/Jellyfin, для безпосередньої роботи з документами, що є на Диску, або для доступу до корзини S3 до програми, яка не знає, як використовувати S3.

У Linux вам потрібно встановити та ввімкнути FUSE3. allow_other en /etc/fuse.conf щоб інші користувачі мали доступ до монтування. У Windows це залежить від WinFsp.

Приклад монтування в Linux:

mkdir -p /mnt/gdrive
rclone mount gdrive: /mnt/gdrive \
  --daemon \
  --allow-other \
  --vfs-cache-mode full \
  --vfs-cache-max-size 20G \
  --dir-cache-time 48h \
  --log-file /var/log/rclone/gdrive.log \
  --log-level INFO

Параметр --vfs-cache-mode Позначте різницю поведінки:

  • від: без кешу; лише для простого читання.
  • мінімальнийДостатньо, щоб все запрацювало.
  • пише: кешує записи до їх завантаження.
  • Повний: кешує читання та запис; ідеально підходить для мультимедіа, офісних програм тощо, але ціною збільшення дискового простору.

Якщо ви хочете, щоб налаштування витримало перезавантаженняЗвичайна практика полягає у створенні спеціального сервісу systemd. Поширеним шаблоном є параметризований сервіс. rclone-remote@.service який кріпить будь-який пульт дистанційного керування /cloud/<nombre> а потім активуйте його за допомогою:

sudo systemctl enable --now rclone-gdrive.service

У Windows підключіть OneDrive або Диск як літеру X:

rclone mount onedrive: X: --vfs-cache-mode full

Розширене шифрування за допомогою серверної частини криптографії та безпеки конфігурації

Якщо є щось, до чого варто ставитися серйозно в Rclone, то це безпека.файл rclone.conf Він містить токени OAuth, ключі доступу S3, зашифровані паролі… і будь-хто, хто його скопіює, на практиці може отримати доступ до ваших хмар.

задній кінець crypt Це дозволяє шифрувати файли, імена файлів та імена каталогів. прозоро. Під час налаштування ви обираєте:

  • віддалений: базовий бекенд (наприклад gdrive:encrypted).
  • шифрування_назви_файлу: off, standard u obfuscate.
  • шифрування_назви_каталогу: правда/неправда.
  • пароль y password2 (сіль за бажанням).

Отримана конфігурація виглядає ось так (підсумовано):

[gdrive-crypt]
type = crypt
remote = gdrive:encrypted/
password = ENCRYPTED_PASSWORD_HASH
password2 = ENCRYPTED_SALT_HASH
filename_encryption = standard
directory_name_encryption = true

Rclone також дозволяє шифрувати власний файл конфігураціїтож навіть якщо хтось його вкраде, він не зможе прочитати секрети без головного пароля:

rclone config password
# te pedirá una contraseña y a partir de ese momento
# Rclone te la pedirá en cada ejecución

Автоматизація скриптів без необхідності вводити пароль У cron або systemd ви можете використовувати змінну середовища RCLONE_CONFIG_PASS або невеликий скрипт, який експортує його, зчитуючи із захищеного файлу (власник root, дозволи 600) або з менеджера секретів:

export RCLONE_CONFIG_PASS="contraseña_muy_larga"
rclone lsd gdrive: --ask-password=false

Оптимізація продуктивності: великі файли, багато малих файлів та обмеження

За замовчуванням Rclone працює досить добре, але з кількома налаштуваннями ви можете отримати від нього набагато більше.особливо під час переміщення терабайтів даних або мільйонів невеликих файлів.

Для великих файлів (образи віртуальних машин, стиснуті резервні копії, довгі відео) важливо збільшити розмір фрагментів та паралелізм:

rclone copy backup.tar.gz gdrive:backups \
  --drive-chunk-size=256M \
  --transfers=8 \
  --progress

Для багатьох невеликих файлів (фотографії, логи, статичні сайти) кількість шашок та переказів має більше значення та використання --fast-list Якщо оперативна пам'ять дозволяє:

rclone copy fotos/ onedrive:fotos/ \
  --transfers=32 \
  --checkers=16 \
  --fast-list \
  --progress

Коли необхідно дотримуватися обмежень пропускної здатності або API (як-от відомий ліміт завантаження на Google Диск у 750 ГБ/день або обмеження на кількість запитів за секунду), у вас є такі інструменти, як:

  • --bwlimit "08:00,1M 18:00,off" повільно йти в робочий час і вмикати кран вночі.
  • --tpslimit y --tpslimit-burst містити помилки 403 «перевищено ліміт швидкості».

Автоматизація резервного копіювання: cron, systemd та повні скрипти

Зробити rclone copy Ручний режим цілком підійде для тестуванняАле цікаво те, що можна запланувати періодичне резервне копіювання з журналами, ротацією версій та сповіщеннями, коли щось піде не так.

У Linux найпростіший спосіб — використовувати cronНаприклад, щоб запускати синхронізацію документів з Google Диском щоночі о 2:00:

crontab -e

0 2 * * * /usr/bin/rclone sync /home/user/documents gdrive:backup \
  --log-file=/var/log/rclone-backup.log --log-level=INFO

Коли ви хочете чогось серйознішого, з блокуванням, утриманням та сповіщеннямиВарто мати окремий скрипт. Типова схема включає:

  • Змінні з джерелом, місцем призначення, обмеженнями пропускної здатності та днями зберігання.
  • Використання flock або файл блокування для запобігання одночасним екземплярам.
  • Використання --backup-dir і суфікси .bak для керування версіями.
  • Очищення старих резервних копій за допомогою --min-age y --rmdirs.
  • Додаткова можливість надсилання сповіщень до Slack/Discord/Email у разі збою.

Якщо ви надаєте перевагу systemd перед cron, ви можете визначити rclone-backup.service який виконує скрипт і rclone-backup.timer що позначає каденцію (наприклад, о 2:00 невеликою випадковою, щоб не завжди збігатися).

Графічні інтерфейси та використання з Android

Не всім зручно працювати з командним рядкомА для певних завдань (дослідження контенту, перевірка того, що щось знаходиться там, де має бути) графічний інтерфейс може заощадити час.

Rclone пропонує офіційний веб-інтерфейс користувача (експериментальний, але функціональний), який зростає з:

rclone rcd --rc-web-gui --rc-user=admin --rc-pass=password
# luego abres http://localhost:5572 en el navegador

Крім того, існують сторонні графічні інтерфейси, такі як Rclone Browser або сучасні форки, такі як «Rclone UI»Ці інструменти дозволяють перетягувати елементи, планувати завдання з вікна та переглядати їх у візуально привабливому вигляді. У Linux їх можна встановити з репозиторіїв або використовувати AppImage; також існують образи Docker, які надають інтерфейсу доступ до HTTP-порту.

На Android секрет полягає в повторному використанні файлу rclone.confБагато клієнтських програм Rclone дозволяють імпортувати його (або помістити в папку) rclone/ (у внутрішній пам’яті), і звідти ви можете отримати доступ до всіх визначених пультів дистанційного керування, як і на сервері. Ідеально підходить для потокової передачі зашифрованого мультимедійного контенту з вашого мобільного пристрою.

Усунення поширених проблем та діагностика

Робота з хмарними API означає роботу з помилками автентифікації та обмеженнями сервісів.Знання того, як прочитати повідомлення, та наявність відповідного прапорця під рукою позбавляє багатьох проблем.

Помилки автентифікації («не вдалося створити клієнт oauth» або термін дії токенів минув) Зазвичай їх фіксують за допомогою:

  • rclone config reconnect remote: для поновлення посвідчень.
  • У крайньому випадку, видаліть пульт і налаштуйте його з нуля.

Помилки обмеження швидкості 403, особливо на Google ДискуВони зменшуються шляхом зниження агресивності:

rclone copy source: dest: \
  --transfers 2 --checkers 4 \
  --tpslimit 2 --tpslimit-burst 0

Якщо монтування FUSE повертає «доступ заборонено», перевірте:

  • Що в /etc/fuse.conf варіант user_allow_other без коментарів.
  • З чим ти катаєшся? --allow-other та відповідного користувача.

Якщо ви підозрюєте, що файли відсутні після синхронізаціїЗдорова річ — це:

  • Пробувавши раніше з --dry-run.
  • Використовуйте rclone check origen destino --one-way та переглянути об’єднаний звіт.
  • Перевірте шаблони --exclude / --include що вони могли вилити більше інформації, ніж мали б.

Для тонкого рафінування, -vv і прапори --dump headers / --dump bodies Вони показують HTTP-запити, здійснені Rclone, та rclone backend features remote: o rclone test Вони допомагають точно побачити, що підтримує кожен бекенд і як працює з'єднання.

Зрештою, Rclone дозволяє монтувати будь-що: від скромної резервної копії папки «Документи» в Dropbox до багатохмарної системи реплікації з шифруванням, постійним монтуванням та моніторингом за допомогою Prometheus.Крива навчання може бути трохи лякаючою спочатку, але коли ви її освоїте rclone config, copy, sync, mount y cryptРешта — це додавання шарів: автоматизація за допомогою cron або systemd, розширена фільтрація, детальні журнали та незначні налаштування продуктивності для адаптації до вашого мережевого та хмарного середовищ. Щойно ви зберете всі ці частини разом, він перестане бути «просто ще одним консольним інструментом» і стане тихою опорою, яка захищає, зашифровує та забезпечує резервування ваших даних, не даючи вам щодня про це думати.