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)
Убедитесь, что у вас достаточно прав для монтирования в выбранные директории
Можно использовать разные параметры монтирования для каждого аккаунта
Опубликовано