+0 000-000-00-00

Webdav при помощи Rclone

После переустановки Linux Mint  при монтировании яндекс-диска по webdav при помощи davfs2 не видел содержимое. ИИ посоветовал вместо davfs использовать rclone - типа он новее, быстрее и надежнее. 

Итак, установка и настройка rclone

sudo apt install rclone
rclone config

 Там создаем новое подключение. В шаблонах есть Яндекс диск, но он у меня не заработал - трудности с авторизацией, даже после создания приложения в Яндексе и API, все равно сбои авторизации. Поэтому нужно использовать WebDAV внутри rclone (Самый простой путь)

Rclone умеет работать через WebDAV, используя тот самый пароль приложения, который вы создали для webdav. Это избавляет от необходимости открывать браузер и создавать ID разработчика.
 

rclone config

n (New remote) -> имя yad

Выберите тип webdav (в списке это обычно номер в районе 40+)

URL: https://webdav.yandex.ru

Vendor: other

User: ваш_логин@yandex.ru

Password: y (введите ваш пароль приложения)

Остальное по умолчанию.

После создания конфигурации (yad) - команда для монтирования:

rclone mount yad: ~/CloudDisk/YaD --vfs-cache-mode full --dir-cache-time 30s --daemon

Что здесь происходит:

--vfs-cache-mode full: позволяет программам работать с файлами так, будто они локальные (чтение/запись/переименование).

--dir-cache-time 30s: заставляет rclone обновлять список файлов каждые 30 секунд. Если вы добавите файл через веб-интерфейс, он появится в папке максимум через полминуты.

--daemon: запускает процесс в фоновом режиме.

После выполнения команды подождите 10-15 секунд и введите:

ls -la ~/CloudDisk/YaD

Покажет наши папки на яндекс-диске.

Теперь, когда rclone видит файлы, перейдем к автоматизации.

Использовать чистый /etc/fstab для rclone в Mint (Ubuntu-based) не всегда удобно из-за проблем с порядком загрузки сети. Лучше всего создать systemd-сервис — это надежнее, он сам поднимет диск после появления интернета и корректно размонтирует его при выключении.

Вариант 1: Через Systemd (Рекомендуемый)

Создайте файл сервиса:

nano ~/.config/systemd/user/rclone-yandex.service

(Если папки нет: mkdir -p ~/.config/systemd/user/). Вставьте туда этот текст (замените vmk на вашего пользователя, если путь отличается):

[Unit]
Description=RClone Yandex Disk Mount
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/rclone mount YaD: /home/vmk/CloudDisk/YaD \
    --vfs-cache-mode full \
    --vfs-cache-max-size 5G \
    --dir-cache-time 5m \
    --vfs-cache-max-age 24h
ExecStop=/bin/fusermount -u /home/vmk/CloudDisk/YaD
Restart=on-failure

[Install]
WantedBy=default.target

Вариант от Алисы

[Unit]
Description=Rclone mount for Yandex Disk via WebDAV
After=network.target

[Service]
User=ваш_пользователь
Group=ваша_группа
ExecStart=/usr/bin/rclone mount YaDiskWebDAV: /mnt/yandex-webdav \
    --vfs-cache-mode full \
    --dir-cache-time 24h \
    --buffer-size 128M \
    --timeout 30m \
    --poll-interval 10s

Restart=always

[Install]
WantedBy=multi-user.target

 

Активируйте сервис:

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

Теперь диск будет монтироваться автоматически при вашем входе в систему.

Почему Systemd лучше fstab?

Логи: Можно всегда посмотреть, что не так: journalctl --user -u rclone-yandex.

Стабильность: Если rclone "упадет", systemd его перезапустит.

Права: Не нужно возиться с sudo, всё работает от вашего пользователя.

Если вы хотите использовать преимущества systemd (автоматический перезапуск при сбоях, ведение логов, правильное размонтирование), но не хотите, чтобы диск монтировался сам при старте системы, сделайте следующее:

1. Отключите автозагрузку сервиса

Если вы уже выполнили команду enable, отмените её:

systemctl --user disable rclone-yandex.service

Теперь сервис будет «спать» до тех пор, пока вы не вызовете его вручную.

2. Как запускать и останавливать «по кнопке»

Для удобства можно создать короткие команды (алиасы) или просто запомнить эти две:

Включить диск:

systemctl --user start rclone-yandex.service

Выключить диск:

systemctl --user stop rclone-yandex.service

3. Проверка статуса

Если папка вдруг пустая, вы всегда можете проверить, что пошло не так:

systemctl --user status rclone-yandex.service

Бонус: Создание «быстрой команды»

Чтобы не вводить длинную команду systemctl, добавьте сокращение в файл ~/.bashrc:

Откройте файл: nano ~/.bashrc

В самый конец добавьте строки:

alias yad-on='systemctl --user start rclone-yandex.service' 
alias yad-off='systemctl --user stop rclone-yandex.service'

Сохраните (Ctrl+O, Enter) и примените:

source ~/.bashrc.

Теперь в терминале достаточно будет написать yad-on, чтобы диск появился, и yad-off, чтобы он исчез.

 

 в Rclone можно подключить несколько аккаунтов Яндекс.Диска (или других облачных хранилищ) с разными учетными записями.

Если нужно подключить несколько аккаунтов через WebDAV:

Создайте отдельные конфигурации для каждого аккаунта

Для каждого создайте свой service-файл с уникальными:

именем сервиса

точкой монтирования

параметрами подключения

Пример второго сервиса:

[Unit]
Description=Rclone mount for Yandex Disk 2 via WebDAV
After=network.target

[Service]
User=ваш_пользователь
Group=ваша_группа
ExecStart=/usr/bin/rclone mount YaDiskWebDAV2: /mnt/yandex-webdav2 \
    --vfs-cache-mode full \
    --dir-cache-time 24h

[Install]
WantedBy=multi-user.target

 

Теперь вы можете работать с Яндекс.Диском через WebDAV в Rclone, используя systemd для автоматического монтирования.

 

Монтирование разных аккаунтов

Монтирование первого аккаунта

rclone mount YaDisk1: /mnt/yandex1 \
    --vfs-cache-mode full \
    --dir-cache-time 24h

Монтирование второго аккаунта

rclone mount YaDisk2: /mnt/yandex2 \
    --vfs-cache-mode full \
    --dir-cache-time 24h

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

rclone lsd YaDisk1:  # проверка первого аккаунта
rclone lsd YaDisk2:  # проверка второго аккаунта

Управление несколькими конфигурациями

Просмотр всех конфигураций

rclone config show

Редактирование существующей конфигурации

rclone config edit YaDisk1

Полезные команды

Копирование между аккаунтами

rclone copy YaDisk1:source YaDisk2:destination

Синхронизация

rclone sync YaDisk1:folder YaDisk2:folder

Важные моменты

Каждый аккаунт должен иметь уникальное имя в конфигурации (например, YaDisk1, YaDisk2)

Для каждого монтирования нужно указывать разные точки монтирования (например, /mnt/yandex1 и /mnt/yandex2)

Убедитесь, что у вас достаточно прав для монтирования в выбранные директории

Можно использовать разные параметры монтирования для каждого аккаунта

 

    Опубликовано

    Menu