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

  • Rclone об'єднує доступ до десятків хмарних сервісів за допомогою єдиного синтаксису та налаштовуваних пультів дистанційного керування.
  • Це дозволяє копіювати, синхронізувати, монтувати та шифрувати дані між локальною та хмарною мережами, і навіть між різними хмарами.
  • Опції кешування VFS, фільтри та продуктивність дозволяють обробляти великі обсяги файлів.
  • Він добре інтегрується з cron, systemd та скриптами, стаючи міцною основою для серйозного резервного копіювання.

Посібник зі хмарного сховища rclone

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

En цей посібник Ви дізнаєтеся, як встановити rclone на основні системи, налаштувати віддалені пристрої для таких сервісів, як Google Drive, OneDrive, S3 або B2, зрозуміти відмінності між rsync, налаштувати хмарні сховища за допомогою FUSE, шифрувати дані, автоматизувати резервне копіювання за допомогою cron або systemd та вирішити типові проблеми з продуктивністю, автентифікацією або обмеженнями API.

Що таке rclone і чим він відрізняється від rsync?

Rclone – це Програма командного рядка з відкритим кодом, призначена для керування файлами у хмарному сховищіВін підтримує понад 70 провайдерів: Google Drive, Google Photos, OneDrive (особистий, бізнес та SharePoint), Dropbox, Box, MEGA, pCloud, Proton Drive, сервіси S3 (AWS, Wasabi, Cloudflare R2, Backblaze B2…), Google Cloud Storage, Azure Blob, WebDAV (Nextcloud, ownCloud), SFTP/FTP, SMB/CIFS, HTTP та багато інших.

На концептуальному рівні, rclone Це розширює ідею rsync на хмарний світ. Він синхронізує каталоги, копіює дані та виконує однонаправлене або двонаправлене дзеркалювання, але також розуміє хмарні API, повторні спроби, обмеження пропускної здатності, кеші та метадані, специфічні для серверної частини. У той час як rsync зосереджується на локальних шляхах або SSH, rclone розмовляє мовою API кожного постачальника.

Ключова практична відмінність полягає в фокусі. Rsync добре працює в локальному середовищі або середовищі SSH, rclone оптимізовано для хмарних технологійВін знає, коли скористатися перевагами копіювання на стороні сервера (копіювання безпосередньо між контейнерами без використання вашої машини), як розділити дуже великі файли на фрагменти або що робити з метаданими, такими як тип вмісту, дозволи чи версії.

З такими варіантами, як --multi-thread-streams або паралельні перекази, rclone може легко перевершити rsync у 4 рази. під час копіювання через мережу. Особливо з серверами, що підтримують фрагментоване завантаження (S3, GCS, B2 тощо). Він також пропонує прозоре шифрування, монтування FUSE, шари з кількома віддаленими з'єднаннями та невеликий інтегрований сервер HTTP/WebDAV/FTP.

Управління кількома хмарами Rclone

Сумісні сервіси та внутрішня архітектура rclone

El підтримка постачальників Це одна з сильних сторін rclone. На практиці ви можете визначити скільки завгодно «віддалених пристроїв»: кожен віддалений пристрій описує з’єднання (наприклад, gdrive: для особистого Google Диска, onedrive: для OneDrive для бізнесу, s3-backup: для відра S3, nextcloud: через WebDAV тощо).

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

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

Про самостійно розміщені протоколи та системиrclone підтримує SFTP, FTP, WebDAV, SMB/CIFS і навіть HTTP. Це означає, що ви можете використовувати його для копіювання з SFTP-сервера до корзини S3, передачі даних з Nextcloud до локальної папки або масового завантаження з веб-сервера без потреби в додаткових інструментах.

Внутрішньо rclone організований у кілька шарів: ядро, яке керує операціями (Rclone Core), шар VFS, що використовується в кешованих монтуваннях, шар Crypt, який шифрує/дешифрує на льоту, та шар Chunker, який розділяє великі файли на фрагменти в бекендах, які цього потребують. В основі всього цього лежить спільна абстракція бекенду, яка приховує специфіку кожного постачальника.

Системні вимоги та встановлення на Windows, Linux та macOS

Rclone дуже легкий, але важливо розуміти основні вимоги. Він працює з 512 МБ оперативної пам'яті, хоча для інтенсивного використання (монтування з кешуванням, багато одночасних передач) бажано 2 ГБ або більше. На рівні процесора достатньо 1 віртуального процесора, але кілька ядер допомагають скористатися перевагами паралельних передач. На диску він завантажується зі 100 МБ вільного місця, але якщо ви збираєтеся використовувати кешування VFS, рекомендується зарезервувати щонайменше 1 ГБ.

У Linux рекомендується сучасне ядро ​​(в ідеалі 5.4+ з FUSE3)Особливо, якщо ви збираєтеся монтувати віддалені комп'ютери як файлові системи. Щодо дистрибутивів, rclone працює практично на будь-якій сучасній версії (Ubuntu, Debian, Fedora тощо), якщо у вас є права на curl або wget та sudo.

Детальна інсталяція у Windows

У Windows є три основні способи встановлення rclone.Від найбільш контрольованого до найбільш автоматичного. Головне, що ви зрештою отримаєте rclone.exe доступний з будь-якої консолі (CMD або PowerShell).

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

  1. Завантажте ZIP-файл для вашої архітектури.Наприклад rclone-v1.xx.x-windows-amd64.zip для 64 біт.
  2. Розпакуйте файл у певну папку, наприклад C:\rcloneде воно залишиться rclone.exe та кілька текстових файлів.
  3. Додайте C:\rclone до системного ШЛЯХУ (Панель керування → Система → Додаткові налаштування → Змінні середовища → Редагувати ШЛЯХ → Створити → C:\rclone).

B) Встановлення за допомогою Winget на Windows 10/11Ідеально, якщо ви вже використовуєте менеджер пакетів Microsoft:

  1. Встановити rclone: winget install Rclone.Rclone
  2. Видаліть, якщо необхідно: winget uninstall Rclone.Rclone --force

C) Шоколадний для тих, хто має автоматизоване системне програмне забезпечення:

  1. Встановити rclone: choco install rclone
  2. Якщо ви хочете монтувати диски, також встановіть WinFsp: choco install winfsp

Встановлення на Ubuntu/Debian та інші Linux-системи

У Linux найпростішим і завжди актуальним методом є офіційний скрипт.Завантажте та встановіть останню стабільну версію (або бета-версію) за допомогою однієї команди:

  • Стабільна версія: sudo -v ; curl https://rclone.org/install.sh | sudo bash
  • Бета версія: sudo -v ; curl https://rclone.org/install.sh | sudo bash -s beta

Якщо ви віддаєте перевагу абсолютному контролю, ви можете завантажити пакет .deb бетон і керувати ним за допомогою dpkg:

  • Завантажити: wget https://downloads.rclone.org/v1.xx.x/rclone-v1.xx.x-linux-amd64.deb 
  • Встановити: sudo dpkg -i rclone-v1.xx.x-linux-amd64.deb
  • Якщо залежності відсутні: sudo apt -f install

Для збірок запобіжників важливо встановити fuse3 і дозволити allow_other en /etc/fuse.confрозкоментування відповідного рядка. Після цього зазвичай достатньо перезавантаження або перезавантаження служби.

Установка на macOS

На macOS Homebrew значно спрощує життяЗа допомогою кількох команд ви можете використовувати rclone:

  • Встановити за допомогою Brew: brew install rclone
  • Регулярно оновлюйте за допомогою brew upgrade rclone 

Якщо ви не хочете покладатися на Homebrew, ви можете обрати ручну інсталяцію. Завантаження ZIP-файлу macOS, його розпакування та переміщення бінарного файлу до /usr/local/bin так само, як і в Linux. Подальше використання ідентичне: rclone version щоб перевірити, чи все гаразд.

Збірка та шифрування за допомогою rclone

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

Серцем rclone є файл конфігураціїде ви визначаєте свої пульти дистанційного керування. За замовчуванням він знаходиться в ~/.config/rclone/rclone.conf (Linux/macOS) або за шляхом, вказаним %APPDATA% у Windows та керується за допомогою інтерактивного майстра rclone config.

Кожен віддалений модуль — це розділ INI, який групує параметри з'єднання.: тип серверної частини, облікові дані, регіон, спеціальні опції тощо. Типовим прикладом для Google Диска буде щось на кшталт [gdrive] з type = drive, scope = drive і токен OAuth, що зберігається у форматі JSON.

Щоб запустити майстер, Відкрийте термінал і запустіть rclone configВи побачите меню з кількома опціями: створити новий пульт, редагувати існуючий, видалити його, перейменувати, зашифрувати конфігурацію тощо. Зазвичай спочатку потрібно натиснути n для пункту «Новий пульт».

У випадку з Google ДискомТиповий процес віддаленого створення включає кілька кроків: вибір типу «диска», рішення про використання власного ідентифікатора клієнта (рекомендовано, щоб уникнути суворих обмежень Google), вибір області дії (drive повний, лише для читання тощо), використовувати автоматичну автентифікацію в браузері та, за бажанням, вказувати, чи це спільний диск.

Якщо ви перебуваєте в а сервер без браузера (SSH, VPS, контейнер без графічного інтерфейсу), rclone дозволяє авторизацію з іншої машини. Коли майстер запитає «Використовувати автоматичну конфігурацію?», дайте відповідь «ні», і rclone відобразить команду. rclone authorize "drive" який потрібно запустити на своєму ПК за допомогою браузера, скопіювати отриманий токен та вставити його на сервері у відповідне поле.

Базовий синтаксис, віддалені маршрути та основні команди

Загальний синтаксис rclone такий: дуже послідовний і легкий для запам'ятовування: rclone [opciones] subcomando origen [destino]Підкоманда може бути copy, sync, ls, mount, moveтощо. Початкове та кінцеве пункти – це локальні або віддалені маршрути стилю remote:path/to/dir.

Маршрут /path/to/dir вказує на локальну файлову системуУ той час як remote:path/to/dir Це стосується каталогу у віддаленому комп'ютері, визначеному в конфігурації. У більшості серверних систем, remote:/path/to/dir Це еквівалентно тому ж самому, за винятком кількох особливих випадків (FTP, SFTP, Dropbox Business), де префікс / змінює значення (кореневий каталог проти домашнього).

Найкорисніші команди лістингу для початку роботи: ls, lsl, lsd y treeНаприклад, щоб переглянути файли в папці Google Диска розміром rclone ls gdrive:DocumentosЩоб переглянути лише каталоги: rclone lsd gdrive:Якщо ви хочете більш візуальне дерево: rclone tree gdrive:Proyectos --level 3.

Копіювання файлів таке ж просте, як rclone copy origen destino. Практичні приклади:

  • Локальна → хмара: rclone copy C:\Users\usuario\Documents onedrive:backup/documents -P
  • Хмара → локальна: rclone copy onedrive:photos C:\Users\usuario\Pictures -P
  • Хмара → хмара (на стороні сервера, коли це можливо): rclone copy gdrive:data onedrive:backup -P

Підкоманда sync робить пункт призначення ідентичним пункту походженняВоно стирає з долі те, чого більше не існує у витоках. Воно досить небезпечне, якщо використовувати його нерозумно, тому спочатку завжди супроводжуйте його... --dry-run і, якщо хочете, --interactive запитувати підтвердження перед початком руйнівних операцій.

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

rclone

Монтуйте хмарні диски як локальні диски за допомогою FUSE та кешу VFS

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

У Windows монтування здійснюється шляхом призначення літери диска або створення мережевого диска., Наприклад:

  • Підключити OneDrive як диск X: rclone mount onedrive: X: --vfs-cache-mode full
  • Монтувати як мережевий диск: rclone mount onedrive: X: --network-mode --vfs-cache-mode full

У Linux та macOS точка монтування використовується у файловій системі., зазвичай з ПОПЕРЕДНИКОМ:

  • Створити каталог: mkdir -p ~/OneDrive
  • Монтувати у фоновому режимі (демоном): rclone mount onedrive: ~/OneDrive --vfs-cache-mode full --daemon

Ключовим параметром тут є --vfs-cache-mode, який контролює поведінку кешу:

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

Для потокових сервісів або медіакаталогів (Plex, Jellyfin тощо) зазвичай використовується --vfs-cache-mode full плюс хороший розмір кешу (--vfs-cache-max-size, --buffer-size) та щедрий час зберігання (--vfs-cache-max-age, --dir-cache-time), щоб серверу не доводилося постійно генерувати списки.

Графічний інтерфейс: веб-інтерфейс Rclone, інтерфейс користувача Rclone та браузер Rclone

Хоча rclone був створений виключно як інструмент командного рядка (CLI), сьогодні... Існує кілька способів використання його з графічним інтерфейсомЦе ідеально підходить, якщо ви збираєтеся делегувати завдання комусь, хто не вміє користуватися терміналом, або просто хочете мати більш візуальний огляд переказів.

Сам інструмент містить експериментальний веб-інтерфейс., який запускається за допомогою:

  • rclone rcd --rc-web-gui --rc-user=admin --rc-pass=password
  • Потім ви вказуєте браузер на http://localhost:5572 і ви входите в систему, використовуючи це ім'я користувача та пароль.

Крім того, Є дуже відшліфовані графічні інтерфейси сторонніх розробниківОдним із найповніших варіантів є Rclone UI, десктопний додаток для Windows, macOS та Linux, який підтримує перетягування, планування завдань, кілька одночасних передач та візуальні індикатори виконання. Ще однією давньою альтернативою є Rclone Browser, доступний навіть як AppImage у Linux, чого достатньо для багатьох користувачів, яким потрібно лише керувати періодичним резервним копіюванням.

Якщо ви один з тих людей, які живуть на консолі, але не хочуть стільки клопоту на своєму мобільному телефоні, Також є кілька програм на Android, які інтегрують rclone.багато з них безпосередньо повторно використовують файл rclone.conf який ви генеруєте на ПК. Просто скопіюйте цей файл конфігурації до шляху, вказаного додатком, і ваші пульти дистанційного керування будуть готові також і на вашому мобільному пристрої.

rclone

Прозоре шифрування з криптографією та безпекою конфігурації

Одна з найбільших визначних пам'яток rclone - це мати можливість шифрувати ваші дані, перш ніж вони залишать ваш комп'ютер. Бекенд crypt Він діє як шар поверх іншого віддаленого: ви бачите звичайні імена файлів, але зашифровані імена та контент зберігаються в хмарі.

Типова конфігурація віддаленого шифрування включає створити новий пульт дистанційного керування типу crypt і вказати йому маршрут з іншого віддаленого пристрою, наприклад: remote = gdrive:encryptedКрім того, ви обираєте режим шифрування імені (стандартний, обфускація або вимкнено) та визначаєте пароль (і за бажанням другу «сіль» для посилення шифрування).

Після створення Робота з віддаленим шифруванням повністю прозораЯкщо ви це зробите rclone copy /datos/sensibles gdrive-crypt:На Google Диску ви побачите лише дивні імена та нечитабельний вміст. Однак із зашифрованого віддаленого пристрою ваші шляхи та файли відображатимуться точно так, як вони є.

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

В автоматизованих середовищах ви можете вказати пароль за допомогою змінної середовища.RCLONE_CONFIG_PASS про кон --password-commandщоб скрипти, cron або служби systemd могли використовувати rclone без ручного втручання, але без відображення пароля у звичайному тексті.

Автоматизація резервного копіювання та запланованих завдань

Де rclone справді сяє, так це в періодичному резервному копіюванні та запланованій синхронізації.Ви можете використовувати як вбудовані планувальники кожної системи (Планувальник завдань у Windows, cron у Linux, таймери systemd), так і користувацькі скрипти, що включають сповіщення та очищення старих версій.

У Windows планувальник завдань дозволяє запускати rclone у певний час із певними параметрами.Наприклад, щоб щоночі синхронізувати критично важливу папку з OneDrive. Ви можете вивести вивід у файл журналу та ввімкнути повторні спроби, якщо завдання не вдасться.

У Linux найпоширенішою практикою є підготовка невеликого скрипта резервного копіювання та його підключення до cron.. Наприклад, a rclone sync /datos/ gdrive-crypt:backups/ щоденно о 2:00, з --log-file, --fast-list та фільтри для виключення тимчасових файлів або великих журналів.

Якщо ви хочете зробити ще один крок, ви можете Поєднайте rclone з systemd для монтування віддалених серверів під час завантаження або запуску резервних скриптів як служб і таймерівЦе забезпечує набагато кращу видимість (логи, інтегровані в журнали, контроль мережевих залежностей, автоматичний перезапуск у разі збою тощо) і зазвичай краще, ніж cron на сучасних системах.

Чудово те, що rclone пропонує прапорці, розроблені для серйозних резервних копій.: --backup-dir y --suffix щоб надіслати старіші версії до папки історії, --checksum порівнювати з хешами, коли бекенд це підтримує, --max-transfer y --bwlimit щоб уникнути перевантаження пропускної здатності або перевищення щоденних квот, або --track-renames виявляти перейменовані файли замість їх видалення та повторного завантаження.

Оптимізація продуктивності, розширені фільтри та усунення несправностей

Коли ви починаєте переміщувати багато гігабайт або мільйони файлів, деталі мають вирішальне значення.Rclone надає арсенал опцій продуктивності: --transfers щоб налаштувати кількість паралельних підйомів/спусків, --checkers для чеків, --multi-thread-streams y --multi-thread-cutoff для багатопотокового завантаження великих файлів, --buffer-size визначити розмір буферів в оперативній пам'яті тощо.

Для колекцій з багатьма невеликими файлами зазвичай гарною ідеєю є збільшення --transfers y --checkers, і додати --fast-list у бекендах, що підтримують ефективне рекурсивне виведення списків. Так, справді, --fast-list Він споживає більше пам'яті, оскільки rclone заздалегідь зберігає весь список, тому бажано вимірювати його та не зловживати ним на машинах з обмеженим обсягом оперативної пам'яті.

Обмеження пропускної здатності контролюється за допомогою --bwlimitякий навіть підтримує розкладиЩось подібне --bwlimit "08:00,1M 18:00,off" Це забезпечує безперебійну роботу в робочий час і забезпечує високу швидкість вночі. Використання цієї опції допомагає запобігти збою всього інтернет-з’єднання офісу через резервне копіювання.

Фільтри – це ще один фундаментальний стовп: з --include, --exclude, --filter-from, --min-size, --max-ageтощо, ви можете точно вказати, що копіюється, а що ні.Добре розроблений файл фільтра заощаджує вам години непотрібного перенесення (наприклад, виключаючи node_modules, .git, схованки, гігантські колоди тощо).

Що стосується типових проблем, то ви здебільшого побачите помилки автентифікації або обмеження API у Google Диску та подібних сервісах.У таких випадках рекомендується повторно підключити пульт до rclone config reconnectРозгляньте можливість використання власного ідентифікатора клієнта в консолі Google та зменшення паралелізму та TPS (--tpslimit) якщо ви досягаєте лімітів швидкості.

Коли щось іде справді не так, режим налагодження та дампи заголовків rclone дуже допомагають.: запустіть команду за допомогою -vv --dump headers про Включена --dump bodies (Обережно, бо це дуже багатослівно) Зазвичай це показує, що повертає бекенд і чому. А якщо ви підозрюєте помилку, зробіть скріншот за допомогою -vv А відкриття проблеми в репозиторії GitHub проекту — це найшвидший спосіб отримати допомогу.

З огляду на все вищезазначене, rclone стає центральним елементом для тих, хто щодня покладається на хмарне сховище.Незалежно від того, чи використовуєте ви його для зашифрованого резервного копіювання між кількома провайдерами, налаштування Google Диска на медіасервері, перенесення даних між сховищами S3, автоматизації резервного копіювання баз даних або просто запобігання переповненню жорсткого диска вашого Raspberry Pi, щойно ви освоїте синтаксис та віддалений доступ, він стане інструментом, до якого ви завжди повертатиметесь, коли думаєте: «Це точно можна зробити за допомогою rclone».