rclone — синхронизация с облаками S3, Drive, B2 | Глоссарий | Глоссарий FREEHOSTING

rclone

Rclone Cloud Sync
rclone — Консольная утилита и Go-библиотека для синхронизации, копирования и монтирования файлов между локальной ФС и более чем 70 облачными хранилищами: S3, GCS, Backblaze B2, Yandex Disk, Google Drive, Dropbox, OneDrive, FTP, SFTP, WebDAV.

Определение простыми словами

rclone — это «rsync для облаков», написанный на Go и доступный для Linux, macOS, Windows, FreeBSD. Утилита знает, как разговаривать с десятками облачных протоколов: AWS S3 и совместимыми (MinIO, Wasabi, Backblaze B2), Google Drive, Dropbox, OneDrive, Mail.ru Cloud, Yandex Disk, а также с обычными FTP, FTPS, SFTP и WebDAV. Все хранилища настраиваются как «remotes» в едином конфиге, после чего синтаксис команд одинаков для любого облака.

Помимо синхронизации rclone умеет монтировать удалённое хранилище как локальный диск (через FUSE), стримить большие файлы без полной загрузки и шифровать содержимое прозрачно для облака. Это делает rclone стандартом де-факто для миграций между облаками и для бэкапов на дешёвые object storage.

Сравнение (таблица)

Параметр rclone rsync aws s3 cli
Поддержка облаков 70+ провайдеров Только SSH/локально Только AWS S3 и совместимые
Монтирование Да, FUSE Нет Через s3fs отдельно
Шифрование на лету Да, crypt remote Через ssh Только server-side
Дельта-передача По размеру и хешу По блокам (rolling checksum) По хешу ETag
Параллелизм Настраиваемый —transfers Один поток —cli-write-timeout
Bandwidth limit —bwlimit с расписанием —bwlimit Нет встроенного

Кейсы использования

  • Бэкап сайта на VPS в Backblaze B2 или Wasabi с retention через rclone sync и --backup-dir.
  • Миграция данных между Google Drive и Yandex Disk без локальной выгрузки на диск.
  • Монтирование S3-бакета как сетевого диска для медиа-сервера или старых приложений без поддержки S3.
  • Шифрование файлов перед загрузкой в публичное облако через crypt-remote — провайдер видит только зашифрованные имена и содержимое.
  • Регулярная синхронизация резервных копий БД с ноды на удалённое хранилище через cron.
  • Негативный сценарий: использовать rclone sync вместо copy, не понимая, что sync удаляет в приёмнике файлы, отсутствующие в источнике. Один неверный путь — и облачный бэкап превращается в копию пустой папки. Всегда тестируйте через --dry-run.

Технические детали

# Интерактивная настройка нового remote
rclone config

# Копирование локального каталога в S3-бакет
rclone copy /var/www/uploads s3:my-bucket/uploads --transfers 8 --progress

# Синхронизация с переносом удалённых файлов в архив
rclone sync /backup/db b2:my-backups/db 
  --backup-dir b2:my-backups/db-archive/$(date +%Y-%m-%d) 
  --bwlimit "08:00,512k 22:00,off"

# Монтирование S3 как локального диска
rclone mount s3:my-bucket /mnt/s3 --vfs-cache-mode writes --daemon

# Проверка целостности после копирования
rclone check /var/www/uploads s3:my-bucket/uploads --one-way

# Зашифрованный remote поверх Backblaze
rclone config create secret crypt remote=b2:vault password=$(openssl rand -base64 24)

Параметр --transfers регулирует число параллельных файлов, --checkers — количество потоков сравнения. Для медленных каналов и мелких файлов поднимайте оба значения, для быстрых каналов и крупных файлов — оставляйте по умолчанию (4).

Частые вопросы

rclone бесплатный?

Да, лицензия MIT. Платить нужно только за облачное хранилище, к которому подключаетесь. Сама утилита не имеет ограничений на трафик или объём данных.

В чём разница между copy и sync?

copy добавляет и обновляет файлы в приёмнике, но ничего не удаляет. sync приводит приёмник к точной копии источника, удаляя лишнее. Для бэкапов чаще нужен copy или sync с --backup-dir.

Можно ли запустить rclone без интерактивного config?

Да, через переменные окружения вида RCLONE_CONFIG_REMOTE_TYPE=s3, RCLONE_CONFIG_REMOTE_ACCESS_KEY_ID=... Удобно в Docker и CI.