Куда складывать резервные копии наших файлов? Ясное дело, в облако!
Сейчас существует множество различных сервисов, предоставляющих бесплатные и платные хранилища:
- Яндекс Диск
- Google Drive
- Dropbox
- Seafile
- Облако Mail.ru
- и прочие
Некоторые сервисы имеют собственные приложения, которые нужно установить, настроить, выбрать папку синхронизации. Но не всегда есть такие приложения для Linux, особенно для серверных вариантов. Смонтировал облачный диск в директорию, к примеру, /backup и пользуйся, загружай, удаляй. И это вполне можно сделать, если сервис предоставляет возможность подключения к облачному диску по протоколу WebDAV.
WebDAV (Web Distributed Authoring and Versioning) является расширением протокола HTTP/1.1. Позволяет обращаться к файлам на удаленном сервере и выполнять с ними операции чтения, записи, копирования, удаления и т.д.
Сегодня подключим облачный диск из Облака Mail.Ru в качестве директории /backup с помощью davfs2 в Ubuntu 22.04. Удобная штука, особенно если требуется автоматизировать резервное копирование документов в облако.
Установка и настройка davfs2
Устанавливаем пакет davfs2:
apt install davfs2
Сразу после установки пакет попробует настроиться. Настройку можно изменить позже, запустив команду "dpkg-reconfigure davfs2".
В данном случае нам нужно определиться, под каким именно пользователем мы будем монтировать облачный диск. Если пользователь непривилегированный, то нужно включить соответствующую опцию. У меня простой случай, я всё монтирование буду осуществлять от пользователя root, поэтому отвечаю No.
Для монтирования облачного диска из Облака Mail.Ru требуется отключить использование метода LOCK. Для этого выставим опцию use_locks в 0 в конфигурационном файле /etc/davfs2/davfs2.conf.
Генерируем пароль приложения
Для того, чтобы подключиться к облаку через WebDAV, нужно сгенерировать специальный пароль. По сути, мы будем неким сторонним приложением, которому нужно дойти в облако. Логинимся в браузере в свой ящик mail.ru и переходим на страницу:
https://account.mail.ru/user/2-step-auth/passwords/
Добавить.
Придумываем название для приложения. Продолжить.
Пишем пароль от ящика, ставим галку, что мы не верблюд. Продолжить.
Пароль сгенерирован, копируем его, он нам пригодится. Пароль выглядит как-то так: FKh63KgDL4JgDLWJjdJ2.
Таких паролей можно сгенерировать сколько угодно, и удалить потом, когда надобность в них отпадёт.
Настройка учётных данных
Созданный пароль нам нужно где-то сохранить. Сделать это нужно для того, чтобы не вводить пароль вручную при каждом монтировании и не палить его в скриптах. Сохранять будем в файле /etc/davfs2/secrets. Этот файл является системным, доступ на чтение к нему имеет только пользователь root, что меня полностью устраивает.
Если у вас какой-то другой пользователь, то учётные данные следует сохранить в $HOME/.davfs2/secrets, его нужно создавать вручную. Ввиду наличия секретной информации в этом файле, обязательно следует запретить другим пользователям системы производить его чтение, например, командой:
chmod 600 $HOME/.davfs2/secrets
Данные сохраняем в формате:
$PathToMountPoint $USER $PASSWORD
Например:
https://webdav.cloud.mail.ru:443/Backup/cloud example@mail.ru FKh63KgDL4JgDLWJjdJ2
Если в пароле есть пробелы или символы $^#&, то пароль нужно взять в двойные кавычки "My WEBDAV pa $$ word".
Настройка опций монтирования
Придумываем куда будем монтировать облачную папку и создаём соответствующую директорию, например, /backup.
Редактируем /etc/fstab, добавляем строку:
https://webdav.cloud.mail.ru:443/Backup/cloud /backup davfs user,rw,noauto 0 0
В данном случае я использую опцию noauto, чтобы папка не монтировалась при загрузке. Монтировать я её буду скриптом. Если вам требуется автоматическое подключение, то используйте _netdev, поскольку для монтирования облачной папки требуется сетевое подключение.
Монтируем
Вроде всё настроили проверим. Монтируем директорию:
mount /backup
Ошибок нет. Перейдём в неё и создадим файл:
cd /backup
touch 123.txt
Проверяем облако.
Файл появился в облачной папке.
Выходим из папки и демонтируем:
cd /
umount /backup
Всё работает, минимальная конфигурация для работы с облачным диском из Облака Mail.Ru в Ubuntu 22.04 подготовлена.
Дополнительно
Монтирование с ручным вводом пароля:
mount.davfs -o username=example@mail.ru https://webdav.cloud.mail.ru/Backup/cloud /backup
Яндекс Диск:
https://webdav.yandex.ru:443 /media/Yandex davfs user,rw,noauto 0 0
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://help.mail.ru/cloud_web/app/webdav/
Примечание
davfs2 формирует кэш, который может разрастаться.
/var/cache/davfs2/
Я его вручную скриптом чищу после демонтирования шары. Сам он не чистится.