logo

Ранее я писал о том, как использовать Яндекс.Диск через WebDAV и как установить родной клиент Яндекс.Диска на Ubuntu Server. В этой статье расскажу о более «продвинутом» способе — с использованием утилиты rclone. Это простой, универсальный инструмент, который можно использовать в bash-скриптах, например. В гайде покажу, как настроить его на Ubuntu, но он подойдёт и для других систем. Например, на macOS я использую его точно так же.

Что нам понадобится? Link to heading

  • rclone на сервере (Ubuntu)
  • rclone на основной машине с браузером. Так как мой домашний сервер не имеет графической оболочке и браузера, я буду использовать rclone на macOS для получения токена. Установить его на macOS можно через brew

Установка rclone на Ubuntu Link to heading

sudo apt update

Затем:

sudo apt install rclone

Настройка подключения к Яндекс.Диску Link to heading

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, полностью скопируйте его (от { до }).

Возвращаемся в консоль сервера и вставляем этот токен.

  • При запросе Keep this "yandex" remote? — нажимаем Y.
  • Нажимаем q для выхода.

✅ Готово! Теперь Яндекс.Диск доступен через rclone.


Примеры использования Link to heading

Ниже приведены полезные команды:

  • Копирование файла в корень Яндекс.Диска

    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 с внешним HDD

    rclone sync yandex:/Backup /Volumes/HDD/Backup
    

⚠️ Важно: команда sync перезаписывает локальную папку, удаляя файлы, которых нет на удаленном диске.

  • Удаление одного файла

    rclone delete yandex:/Temp/old.txt
    
  • Очистка целой папки

    rclone purge yandex:/Temp
    

Задача со звёздочкой: автоматический монтирование через systemd Link to heading

Хочу заменить родное приложение Yandex.Disk и попробовать использовать rclone как сервис в связке с FUSE.

Установка FUSE (если ещё не установлен) Link to heading

apt install -y fuse3

Создание systemd-сервиса Link to heading

Создайте файл:

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

Активация сервиса Link to heading

sudo systemctl daemon-reload
sudo systemctl enable rclone-yandex.service
sudo systemctl start rclone-yandex.service

Проверка состояния сервиса Link to heading

sudo systemctl status rclone-yandex.service

Заключение Link to heading

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