rclone как файловый менеджер для облачных сервисов: установка и базовая настройка в 2026 году | AdminWiki

rclone как файловый менеджер для облачных сервисов: установка и базовая настройка в 2026 году

02 октября 2026 14 мин. чтения
Содержание статьи

Что такое rclone и зачем он нужен DevOps-инженеру в 2026 году

rclone это консольный файловый менеджер для облачных хранилищ: один бинарник на Go, одинаковый синтаксис команд и поддержка десятков сервисов, включая S3 и S3-совместимые бакеты, Google Drive, Яндекс Диск, WebDAV, Backblaze B2, Hetzner Storage Box, Dropbox, OneDrive, Mega, SFTP и FTP.

Ставят его под четыре повторяющиеся задачи: ночное резервное копирование, зеркалирование бакета между провайдерами, монтирование облака в файловую систему и разовая миграция больших объёмов данных. Ответ на главный вопрос короткий: если вы работаете в терминале, запускаете операции по расписанию или держите данные в нескольких хранилищах, rclone закрывает эти сценарии одной командой без графической оболочки и без лишних зависимостей.

  • Резервное копирование. Ночной синк каталога с логами или дампами в S3, на Яндекс Диск или в Backblaze B2, с журналом и проверкой хешей.
  • Миграция данных. Перенос архивов между провайдерами с ограничением полосы и контролем целостности. Такой сценарий подробно разобран в руководстве по миграции данных в облако.
  • Монтирование. Облачный архив появляется в /mnt/archive, и приложение читает файлы как локальные.
  • Служебные операции. Выгрузить 200 ГБ логов, сверить содержимое двух бакетов, удалить файлы старше 30 дней по фильтру.

Что даёт инструмент помимо списка провайдеров: шифрование данных на стороне клиента (remote типа crypt), ограничение скорости через --bwlimit, безопасную примерку любого действия через --dry-run, работу по SSH на сервере без графики и один исполняемый файл вместо Java или Electron. Конфигурация лежит в текстовом файле, поэтому её легко переносить между машинами и подставлять в скрипты.

Кому и когда rclone заменяет графические клиенты

Графический клиент удобен для ручной работы на десктопе. В четырёх ситуациях он проигрывает.

  1. Сервер без графики. На боевом хосте нет ни браузера, ни десктопного окружения, а rclone ставится одним пакетом.
  2. Расписание. Ночную выгрузку 500 ГБ из локального каталога в бакет запускает cron или systemd timer. В GUI это ручная операция у монитора.
  3. Несколько провайдеров сразу. Копирование между S3 и Яндекс Диском идёт напрямую между хранилищами, без промежуточной выгрузки файлов на локальный диск.
  4. Повторяемость. Одна и та же команда в скрипте, в CI и на ноутбуке даёт одинаковый результат, а параметры зафиксированы в конфиге.

Ограничение тоже стоит знать: десктопные клиенты дают предпросмотр файлов и корзину мышкой, а rclone требует помнить команды. Для разовых правок в облаке приложение быстрее, для регулярных задач rclone экономит время.

Ключевые возможности: sync, copy, mount, шифрование

Таблица соответствия «задача - команда» закрывает вопрос за полминуты.

ЗадачаКоманда или флаг
Посмотреть каталоги и файлы в хранилищеrclone lsd, rclone ls, rclone lsl
Узнать занятое место и квотуrclone about remote:
Скопировать новое и изменённое, ничего не удаляяrclone copy
Сделать приёмник зеркалом источникаrclone sync
Перенести данные и удалить их в источникеrclone move
Смонтировать облако как локальный дискrclone mount
Зашифровать данные на стороне клиентаremote типа crypt
Сверить содержимое по хешамrclone check
Ограничить полосу--bwlimit
Показать план операции без выполнения--dry-run

Дальше разбираем установку, создание remote и каждую из этих команд с примерами.

Установка rclone на Linux, Windows и macOS

После любого способа установки проверка одна: rclone version. Ориентируйтесь на актуальную ветку 1.6x и выше и сверяйтесь со страницей загрузок проекта: провайдеры добавляют новые схемы авторизации, и версия из репозитория дистрибутива может их не знать.

Linux: apt, dnf, snap или официальный скрипт

Пакетные менеджеры дают стабильную версию и обновление вместе с системой.

sudo apt update && sudo apt install rclone      # Debian, Ubuntu
sudo dnf install rclone                         # RHEL, Fedora
sudo pacman -S rclone                           # Arch

Snap обновляется сам, но работает в изоляции: доступ к каталогам выдаётся отдельно, и путь к конфигу может оказаться недоступен из изолированного окружения.

sudo snap install rclone

Официальный install-скрипт даёт последнюю версию: скачайте install.sh со страницы загрузок проекта и запустите через sudo bash install.sh. Минус в том, что обновление тоже придётся запускать вручную. Проверка одна и та же:

rclone version

В выводе смотрите первую строку, например rclone v1.6x.x. Если нужен редкий провайдер или свежая схема OAuth, ставьте сборку с сайта проекта, а не из репозитория.

Windows: winget, choco, scoop и ручная установка

Три менеджера пакетов покрывают почти все рабочие станции и серверы Windows:

winget install Rclone.Rclone
choco install rclone
scoop install rclone

Ручной вариант: скачать zip-архив, распаковать в C:\Tools\rclone и добавить каталог в PATH. Проверка в PowerShell:

rclone version

Для rclone mount на Windows нужен WinFsp: без него монтирование завершится ошибкой о недоступном FUSE. Установщик берётся с официального сайта проекта. Само монтирование требует прав администратора, а для постоянной работы его удобнее оформить службой.

macOS: Homebrew и проверка версии

brew install rclone
rclone version

Ручная установка с сайта проекта тоже работает, но Homebrew проще обновлять. Для mount понадобится macFUSE, а в свежих версиях macOS системное расширение нужно разрешить в разделе «Конфиденциальность и безопасность» настроек системы, иначе команда упадёт с сообщением о недоступном FUSE. Права root для монтирования в пользовательский каталог не нужны.

Настройка удалённого хранилища через rclone config

Конфигурация создаётся интерактивно командой rclone config. Меню предлагает три действия: n для нового remote, e для правки существующего, d для удаления. Дальше вводите имя remote и выбираете тип хранилища по номеру. Remote это алиас, который потом используется во всех командах: gdrive:, s3prod:, yandex:.

Имя remote подставляется в начало пути: s3prod:backups/2026 означает каталог backups/2026 в бакете, привязанном к remote s3prod. Путь после двоеточия необязателен, тогда работа идёт с корнем хранилища.

Создание remote для S3-совместимого хранилища

Последовательность шагов для AWS S3, MinIO, Яндекс Object Storage и других S3-совместимых сервисов:

  1. Запустите rclone config и выберите n.
  2. Введите имя remote, например s3prod.
  3. Выберите тип s3 из списка.
  4. Укажите провайдера: AWS, MinIO, Other и так далее.
  5. Введите access_key_id и secret_access_key.
  6. Для S3-совместимых сервисов заполните endpoint со схемой http или https, для AWS поле оставляют пустым: адрес подставляется автоматически.
  7. Укажите регион, если провайдер его требует.
  8. Сохраните конфигурацию и выйдите из меню.

Итоговый фрагмент конфига выглядит так:

[s3prod]
type = s3
provider = MinIO
access_key_id = ключ_доступа
secret_access_key = секретный_ключ
endpoint = (http или https)://хост:порт
region = us-east-1

Проверка подключения:

rclone lsd s3prod:

Команда печатает список каталогов верхнего уровня. Пустой вывод означает, что бакет пуст либо ключ видит только часть пространства. Если ключи не хочется хранить в файле, задайте переменные окружения: RCLONE_CONFIG_S3PROD_TYPE, RCLONE_CONFIG_S3PROD_ACCESS_KEY_ID, RCLONE_CONFIG_S3PROD_SECRET_ACCESS_KEY и RCLONE_CONFIG_S3PROD_ENDPOINT. Конфиг останется чистым, а секреты будут жить в окружении или в секретах CI.

Подключение Google Drive и OAuth-авторизация

Google Drive подключается через OAuth, и это самый частый источник сомнений. Порядок такой:

  1. rclone config, затем n и имя remote, например gdrive.
  2. Тип хранилища drive.
  3. client_id и client_secret можно оставить пустыми, тогда используется общий идентификатор rclone. Свои значения задают, если нужен собственный лимит запросов.
  4. Scope: drive для полного доступа или drive.readonly, если запись не нужна.
  5. Авторизация в браузере по ссылке, которую выведет утилита.

На сервере без браузера выбирайте вариант без автоматического запуска браузера, а на локальной машине выполните rclone authorize "drive", пройдите авторизацию и перенесите полученную строку с токеном в консоль сервера. Проверка подключения и квоты:

rclone about gdrive:

Токен даёт доступ к вашему диску, поэтому права на файл конфига имеют значение. Как ограничивать доступ к учётным данным и выстраивать защищённую схему выгрузки, разобрано в руководстве по автоматизации бэкапов на Яндекс Диск и Google Drive.

Где хранится конфиг и как его защитить

СистемаПуть к конфигу
Linux~/.config/rclone/rclone.conf
macOS~/.config/rclone/rclone.conf
Windows%APPDATA%\rclone\rclone.conf

Другой путь задаётся флагом --config или переменной RCLONE_CONFIG, что удобно для сервисных учётных записей. Защита конфига сводится к четырём шагам:

  • Выдайте права только владельцу: chmod 600 ~/.config/rclone/rclone.conf, для каталога достаточно 700.
  • Зашифруйте конфиг командой rclone config password, если файл покидает пределы сервера. После шифрования rclone спросит пароль при запуске.
  • Не коммитьте rclone.conf в git и не храните его в публичных бакетах или в образах контейнеров.
  • Заведите отдельный remote для продакшена с минимально нужными правами и не используйте его для личных файлов.

Ключевые команды: навигация, copy, sync, move

Четыре команды покрывают осмотр хранилища без графического клиента:

rclone lsd remote:                 # каталоги с датами
rclone ls remote:path              # файлы с размерами
rclone lsl remote:path             # файлы с размерами и временем
rclone about remote:               # занятое место, свободное место, корзина

Флаг --max-depth 1 ограничивает глубину обхода и ускоряет вывод на больших бакетах. Команда rclone about поддерживается не всеми провайдерами: у S3-совместимых сервисов сведения о свободном месте обычно недоступны, а Google Drive и Яндекс Диск их отдают. Для изменения структуры есть rclone mkdir remote:path, для очистки - rclone delete с фильтрами и rclone purge, который удаляет каталог целиком вместе с содержимым.

rclone mkdir s3prod:backups/2026
rclone delete s3prod:backups --min-age 30d --dry-run
rclone purge s3prod:old-test

Перед delete и purge прогоняйте ту же команду с --dry-run: утилита напечатает, что именно будет удалено.

copy vs sync vs move: что выбрать и когда

КомандаЧто делаетУдаляет в источнике?Удаляет в приёмнике?Типовой сценарий
copyКопирует новые и изменённые файлыНетНетБэкап, выгрузка логов, публикация сборки
syncДелает приёмник точной копией источникаНетДаЗеркало бакета, реплика для стенда
moveПереносит файлы и удаляет их в источникеДаНетРазгрузка локального диска, миграция

Примеры для трёх задач:

rclone copy /var/backups s3prod:server-backups --progress
rclone sync /data s3prod:data-mirror --dry-run --progress
rclone move /var/log/archive yandex:logs-archive --min-age 7d --delete-empty-src-dirs

Правило номер один: sync запускается только после sync с --dry-run, особенно на проде. Флаг печатает список операций, включая удаления, и ничего не меняет. Если в источнике случайно окажется пустой каталог вместо данных, реальный sync без проверки уничтожит копию в приёмнике.

Полезные флаги для всех трёх команд: --progress для индикатора в терминале, --transfers 4 и --checkers 8 для снижения нагрузки на диск и сеть, --checksum для сравнения по хешам, --exclude и --include для фильтров, --log-file и --log-level INFO для журнала. Сценарии бэкапа с готовыми скриптами и расписанием собраны в статье про резервное копирование сервера в 2026 году.

Проверка результата: rclone check и exit code

rclone check /data s3prod:data-mirror --one-way

Команда сравнивает файлы по хешам и печатает расхождения. На больших объёмах проверка занимает время, а для хранилищ без поддержки хешей применяется --size-only. Флаг --one-way проверяет только источник, не требуя совпадения списка файлов в обе стороны.

Код возврата важен в скриптах: 0 означает успех, любое другое значение - ошибку или расхождения. В bash проверка выглядит так:

rclone check /data s3prod:data-mirror --one-way || echo "check failed: $?"

Для критичных данных добавляйте --checksum к copy и sync: сравнение идёт по хешу, а не по размеру и времени изменения. Такой режим медленнее, зато ловит повреждения, которые не меняют размер файла.

Монтирование облака как локального диска через rclone mount

Базовая команда выглядит так:

rclone mount s3prod:archive /mnt/archive --vfs-cache-mode writes

Облачный каталог появляется в /mnt/archive, и приложения читают файлы как локальные. Размонтирование: fusermount -u /mnt/archive в Linux, umount /mnt/archive в macOS, в Windows монтирование снимается остановкой процесса или службы. Без рабочего FUSE-слоя команда завершится ошибкой, поэтому сначала проверяем зависимости.

FUSE, WinFsp и macFUSE: что установить

  • Linux. Пакет fuse3 (sudo apt install fuse3 или sudo dnf install fuse3). Проверка: наличие файла устройства /dev/fuse. Для доступа других пользователей к точке монтирования добавьте ключ --allow-other и строку user_allow_other в /etc/fuse.conf.
  • Windows. WinFsp с официального сайта проекта. Монтирование требует прав администратора, а для постоянной работы его оформляют службой.
  • macOS. macFUSE и разрешение системного расширения в настройках безопасности. После обновления системы разрешение иногда сбрасывается, и mount перестаёт работать.

В контейнере точка монтирования требует проброса устройства и дополнительных прав: --device /dev/fuse и --cap-add SYS_ADMIN при запуске docker run.

Режимы VFS-кэша и выбор для продакшена

РежимПоведениеКогда применять
offКэша нет, всё читается из облакаПоследовательное чтение больших файлов, стриминг
minimalКэшируются только открытые файлыЛёгкий доступ на чтение и запись без больших объёмов
writesКэшируется всё, что пишется приложениемСервисы, которые создают и правят файлы
fullПолный кэш чтения и записиПриложения с произвольной записью и переименованием файлов

Для продакшена чаще берут writes или full: многие приложения не умеют работать с частичной записью и переименованием напрямую в облаке. Размер кэша ограничивают флагами --vfs-cache-max-size 10G и --vfs-cache-max-age 24h, иначе полный кэш со временем займёт весь диск. Флаг --dir-cache-time 12h уменьшает число обращений к API за списком каталогов.

Автоматический бэкап с компактного NAS в облако, с шифрованием и дедупликацией, разобран в отдельной статье: rclone и Duplicacy для TrueNAS, Synology и QNAP.

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

Systemd unit для монтирования и синхронизации

Юнит для монтирования запускается при загрузке и перезапускается при сбое. Тип notify сообщает systemd, что том готов к работе, и зависимые сервисы стартуют после него.

[Unit]
Description=rclone mount cloud archive
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/rclone mount s3prod:archive /mnt/archive --config /root/.config/rclone/rclone.conf --vfs-cache-mode writes --allow-other
ExecStop=/bin/fusermount -u /mnt/archive
Restart=on-failure
RestartSec=10
User=root

[Install]
WantedBy=multi-user.target

Для регулярной синхронизации нужны два файла: сервис с самой командой и таймер с расписанием.

# rclone-sync.service
[Unit]
Description=Nightly rclone sync

[Service]
Type=oneshot
ExecStart=/usr/bin/rclone sync /data s3prod:backup --config /root/.config/rclone/rclone.conf --log-file /var/log/rclone/sync.log --log-level INFO
# rclone-sync.timer
[Unit]
Description=Run rclone sync daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

Включение и проверка:

sudo systemctl daemon-reload
sudo systemctl enable --now rclone-mount.service
sudo systemctl enable --now rclone-sync.timer
systemctl status rclone-mount
journalctl -u rclone-sync.service -n 50

Флаг Persistent=true догоняет пропущенный запуск, если сервер был выключен в момент срабатывания таймера.

Cron для регулярной синхронизации

Если systemd нет, хватает строки в crontab:

0 3 * * * /usr/bin/rclone sync /data s3prod:backup --config /root/.config/rclone/rclone.conf --log-file /var/log/rclone/backup.log --log-level INFO

Cron запускается с урезанным PATH, поэтому путь к бинарнику указывают полностью. Вывод команды cron пытается отправить почтой, но на серверах без почтового агента сообщения теряются, так что журнал в файл обязателен. Логи ротируют через logrotate, иначе каталог вырастет. Схема выгрузки логов и артефактов из пайплайна описана в материале про автоматизацию загрузки и выгрузки файлов в CI/CD.

Ограничение скорости: --bwlimit и расписание

Статическое ограничение задаётся значением с суффиксом:

rclone sync /data s3prod:backup --bwlimit 10M --transfers 4 --checkers 8

Для рабочего дня и ночи удобно расписание: днём полоса урезается, вечером ограничение снимается.

rclone sync /data s3prod:backup --bwlimit "08:00,10M 19:00,off"

Время в расписании берётся из локальной зоны сервера. Ограничение действует на уровне передачи данных, поэтому мелкие файлы ускоряются дополнительно снижением --transfers и --checkers: меньше параллельных потоков значит меньше случайных обращений к API и меньше нагрузка на диск. Флаг --tpslimit ограничивает число запросов в секунду и помогает обойти ответ 429 от провайдера.

Типовые ошибки и как их исправить

Ошибки авторизации и токенов

  • OAuth token expired. Токен Google Drive или другого сервиса истёк. Переподключение: rclone config reconnect gdrive:.
  • 401 или 403 на S3. Проверьте ключи, политику доступа, регион и endpoint. Текущие параметры remote выводит rclone config show s3prod, но не публикуйте полный вывод: в нём есть ключи.
  • 429 Too Many Requests. Снизьте --transfers и --checkers, добавьте --tpslimit 10.
  • Config not found. Укажите путь явно: rclone lsd s3prod: --config /etc/rclone/rclone.conf, либо задайте переменную RCLONE_CONFIG.

Диагностика начинается с двух команд: rclone version для проверки версии и rclone lsd remote: для проверки доступа.

Ошибки монтирования и FUSE

  • fuse: device not found. Нет /dev/fuse или пакета fuse3. Установите fuse3, в контейнере пробросьте устройство и права.
  • mount not permitted для других пользователей. Добавьте user_allow_other в /etc/fuse.conf и ключ --allow-other.
  • Windows: mount failed. Не установлен WinFsp либо процесс запущен без прав администратора.
  • macOS: macFUSE not installed или расширение заблокировано. Разрешите расширение в настройках безопасности и перезагрузите систему.

Подробный вывод даёт флаг --debug:

rclone mount s3prod:archive /mnt/archive --vfs-cache-mode writes --debug

Смонтированный том, который внезапно отваливается, обычно указывает на перезапуск сервиса без Restart=on-failure или на исчерпанный лимит запросов у провайдера.

Чек-лист: rclone в продакшене

Быстрая шпаргалка: задача - команда

ЗадачаКоманда
Проверить версиюrclone version
Список каталоговrclone lsd remote:
Занятое местоrclone about remote:
Скопировать без удаленияrclone copy src dst
Зеркало после dry-runrclone sync src dst
Переместитьrclone move src dst
Смонтироватьrclone mount remote:path /mnt/point --vfs-cache-mode writes
Сверить содержимоеrclone check src dst
Ограничить скорость--bwlimit "08:00,10M 23:00,off"
Показать план синхронизации--dry-run

Финальная проверка перед продакшеном

  1. rclone version показывает актуальную ветку 1.6x или новее.
  2. Права на конфиг: 600 для файла, 700 для каталога, файл не лежит в git и не хранится в публичном бакете.
  3. Секреты в конфиге зашифрованы через rclone config password либо вынесены в переменные окружения.
  4. Для продакшена заведён отдельный remote с минимально нужными правами.
  5. Перед каждым sync выполняется запуск с --dry-run, список удалений прочитан.
  6. После sync выполняется rclone check, код возврата проверяется в скрипте.
  7. Монтирование оформлено юнитом systemd с Restart=on-failure и RestartSec.
  8. --bwlimit ограничивает полосу в рабочие часы.
  9. Логи пишутся в файл, ротируются и просматриваются.

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

Поделиться: