rclone для Яндекс Диска
Ранее я писал о том, как использовать Яндекс.Диск через WebDAV и как установить родной клиент Яндекс.Диска на Ubuntu Server. В этой статье расскажу о более «продвинутом» способе — с использованием утилиты rclone
. Это простой, универсальный инструмент, который можно использовать в bash-скриптах, например. В гайде покажу, как настроить его на Ubuntu, но он подойдёт и для других систем. Например, на macOS я использую его точно так же.
Что нам понадобится?
- rclone на сервере (Ubuntu)
- rclone на основной машине с браузером. Так как мой домашний сервер не имеет графической оболочке и браузера, я буду использовать rclone на macOS для получения токена. Установить его на macOS можно через brew
Установка rclone на Ubuntu
sudo apt update
sudo apt install rclone
Настройка подключения к Яндекс.Диску
rclone config
- Нажмите
n
(новое удалённое хранилище). - Введите имя (например,
yandex
). - Выберите тип хранилища:
yandex
(у меня это номер 57). - Оставьте поля
client_id
иclient_secret
пустыми (нажмите Enter). - При запросе
Edit advanced config?
— выберитеN
. - При запросе
Use web browser to automatically authenticate rclone with remote?
— если вы на сервере без GUI, ответьтеn
.
- Запускаем команду:
rclone authorize "yandex"
- Авторизуемся в Яндекс.
- После прохождения авторизации в консоли появится
access_token
, полностью скопируйте его (от{
до}
).
Возвращаемся в консоль сервера и вставляем этот токен.
✅ Готово! Теперь Яндекс.Диск доступен через rclone
.
Примеры использования
Ниже приведены полезные команды:
- Копирование файла в корень Яндекс.Диска
rclone copy ~/1.txt yandex:
- Показать содержимое папки “Фото” на Яндекс.Диске
rclone ls yandex:/Фото
- Скачать файл
reports_room.pdf
из папкиDocuments
на Яндекс.Диске в папкуDownloads
rclone copy yandex:/Documents/reports_room.pdf ~/Downloads/
- Скачать всю папку
Documents
с Яндекс.Дискаrclone copy yandex:/Documents/ ~/Downloads/Documents
- Синхронизация папки
Backup
с внешним HDDrclone sync yandex:/Backup /Volumes/HDD/Backup
⚠️ Важно: команда sync
перезаписывает локальную папку, удаляя файлы, которых нет на удаленном диске.
- Удаление одного файла
rclone delete yandex:/Temp/old.txt
- Очистка целой папки
rclone purge yandex:/Temp
Задача со звёздочкой: автоматический монтирование через systemd
Хочу заменить родное приложение Yandex.Disk и попробовать использовать rclone
как сервис в связке с FUSE.
Установка FUSE (если ещё не установлен)
apt install -y fuse3
Создание systemd-сервиса
sudo vim /etc/systemd/system/rclone-yandex.service
[Unit] Description=Rclone Mount Yandex Disk After=network-online.target Requires=network-online.target [Service] Type=notify ExecStart=/usr/bin/rclone mount \ yandex: /mnt/65C8-D42C/YD \ --config=/root/.config/rclone/rclone.conf \ --allow-other \ --dir-cache-time=1h \ --vfs-cache-mode full \ --vfs-read-chunk-size 32M \ --vfs-read-chunk-size-limit 1G \ --daemon-timeout=10m \ --umask 000 \ --no-modtime \ --fast-list \ --allow-non-empty ExecStop=/bin/fusermount -uz /mnt/65C8-D42C/YD Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
Активация сервиса
sudo systemctl daemon-reload sudo systemctl enable rclone-yandex.service sudo systemctl start rclone-yandex.service
Проверка состояния сервиса
sudo systemctl status rclone-yandex.service
Заключение
rclone
— мощный и удобный инструмент для работы с облачными хранилищами, особенно если вам нужна автоматизация и работа из терминала. Он позволяет легко управлять Яндекс.Диском, создавать резервные копии, синхронизировать данные и даже монтировать диск как локальную файловую систему.