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

Подключаем Яндекс Диск через 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. Удобная штука, особенно если требуется автоматизировать резервное копирование документов в облако.

Установка и настройка 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

Всё работает, минимальная конфигурация для работы с облачным диском из Облака Mail.Ru в 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/

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

Теги

 

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

Заглушка для технических работ на Nginx

Иногда сайт нужно вывести из эксплуатации для проведения технических работ. Это может быть процесс резервного копирования, обновление, изменение конфигурации, перенос данных, или восстановление.

Теги

Let's Encrypt — настройка certbot в Ubuntu 22

Установим и настроим certbot для получения и обновления SSL сертификатов Let's Encrypt. Операционная система Ubuntu 22.04.4, веб-сервер Nginx. Настраивать будем на примере развёрнутого SeaFile.

Теги