Определение простыми словами
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.