Перейти к основному содержанию

Подключаем Яндекс Диск через WebDAV в Linux

Virtual Private Cloud — VPC

Куда складывать резервные копии наших файлов? Ясное дело, в облако!

Сейчас существует множество различных сервисов, предоставляющих бесплатные и платные хранилища:

  • Яндекс Диск
  • Google Drive
  • Dropbox
  • Seafile
  • Облако Mail.ru
  • и прочие

Некоторые сервисы имеют собственные приложения, которые нужно установить, настроить, выбрать папку синхронизации. Но не всегда есть такие приложения для Linux, особенно для серверных вариантов. Смонтировал облачный диск в директорию, к примеру, /backup и пользуйся, загружай, удаляй. И это вполне можно сделать, если сервис предоставляет возможность подключения к облачному диску по протоколу WebDAV.

WebDAV (Web Distributed Authoring and Versioning) является расширением протокола HTTP/1.1. Позволяет обращаться к файлам на удаленном сервере и выполнять с ними операции чтения, записи, копирования, удаления и т.д.

Сегодня подключим Яндекс Диск в качестве директории /backup с помощью davfs2 в Ubuntu 22.04. Удобная штука, особенно если требуется автоматизировать резервное копирование документов в облако.

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

Установка и настройка davfs2

Устанавливаем пакет davfs2:

apt install davfs2

linux

Сразу после установки пакет попробует настроиться. Настройку можно изменить позже, запустив команду "dpkg-reconfigure davfs2".

linux

В данном случае нам нужно определиться, под каким именно пользователем мы будем монтировать облачный диск. Если пользователь непривилегированный, то нужно включить соответствующую опцию. У меня простой случай, я всё монтирование буду осуществлять от пользователя root, поэтому отвечаю No.

linux

Для монтирования Яндекс Диска требуется отключить использование метода LOCK. Для этого выставим опцию use_locks в 0 в конфигурационном файле /etc/davfs2/davfs2.conf.

linux

Генерируем пароль приложения

Для того, чтобы подключиться к Яндекс Диску через WebDAV, нужно сгенерировать специальный пароль. По сути, мы будем неким сторонним приложением, которому нужно войти в WebDAV. Логинимся в браузере в свой аккаунт Яндекс и переходим на страницу:

https://id.yandex.ru/security/app-passwords

В паролях приложений выбираем Файлы WebDAV. Добавляем.

yandex

Придумываем название для пароля приложения. Далее.

yandex

Пароль сгенерирован, копируем его, он нам пригодится. Пароль выглядит как-то так: fkh63kgdl4jgdlwjjdj2.

yandex

Таких паролей можно сгенерировать сколько угодно, и удалить потом, когда надобность в них отпадёт.

Настройка учётных данных

Созданный пароль нам нужно где-то сохранить. Сделать это нужно для того, чтобы не вводить пароль вручную при каждом монтировании и не палить его в скриптах. Сохранять будем в файле /etc/davfs2/secrets. Этот файл является системным, доступ на чтение к нему имеет только пользователь root, что меня полностью устраивает.

Если у вас какой-то другой пользователь, то учётные данные следует сохранить в $HOME/.davfs2/secrets, его нужно создавать вручную. Ввиду наличия секретной информации в этом файле, обязательно следует запретить другим пользователям системы производить его чтение, например, командой:

chmod 600 $HOME/.davfs2/secrets

Данные сохраняем в формате:

$PathToMountPoint $USER $PASSWORD

Например:

https://webdav.yandex.ru:443/backup/cloud example@yandex.ru fkh63kgdl4jgdlwjjdj2

Если в пароле есть пробелы или символы $^#&, то пароль нужно взять в двойные кавычки "My WEBDAV pa $$ word".

Настройка опций монтирования

Придумываем куда будем монтировать облачную папку и создаём соответствующую директорию, например, /backup.

linux

Редактируем /etc/fstab, добавляем строку:

https://webdav.yandex.ru:443/backup/cloud /backup davfs user,rw,noauto 0 0

В данном случае я использую опцию noauto, чтобы папка не монтировалась при загрузке. Монтировать я её буду скриптом. Если вам требуется автоматическое подключение, то используйте _netdev, поскольку для монтирования облачной папки требуется сетевое подключение.

Монтируем

Вроде всё настроили проверим. Монтируем директорию:

mount /backup

Ошибок нет. Перейдём в неё и создадим файл:

cd /backup
touch 123.txt
yandex

Проверяем облако.

yandex

Файл появился в облачной папке.

Выходим из папки и демонтируем:

cd /
umount /backup

linux

Всё работает, минимальная конфигурация для работы с облачным диском из Яндекс Диск в Ubuntu 22.04 подготовлена.

Дополнительно

Монтирование с ручным вводом пароля:

https://webdav.yandex.ru:443 /media/Yandex davfs user,rw,noauto 0 0

Облако Mail.ru:

mount.davfs -o username=example@yandex.ru https://webdav.cloud.mail.ru/Backup/cloud /backup

4shared:

https://webdav.4shared.com/ /media/4shared davfs user,rw,noauto 0 0

IDriveSync:

https://dav.idrivesync.com/ /media/IDriveSync davfs user,rw,noauto 0 0

OwnCloud:

http://owncloud.example.com/owncloud/files/webdav.php davfs user,rw,noauto 0 0
httpы://example.com/files/webdav.php /media/ownСloud davfs user,rw,noauto 0 0

OwnCube:

https://owncube.com/files/webdav.php /media/OwnCube davfs user,rw,noauto 0 0

Ссылки

https://yandex.ru/support/id/ru/authorization/app-passwords

Примечание

davfs2 формирует кэш, который может разрастаться.

/var/cache/davfs2/

Я его вручную  скриптом чищу после демонтирования шары. Сам он не чистится.

Теги

 

Похожие материалы

Drupal 9 — установка на Nginx в Ubuntu 22

Сегодня мы с вами установим Drupal 9 на веб-сервер Nginx на сервере с операционной системой Ubuntu Server 22.04. Drupal 10 устанавливается аналогично, но сегодня мне нужна именно девятая версия. Погнали.

Теги