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

Подключаем Mega через WebDAV в Linux

Virtual Private Cloud — VPC

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

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

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

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

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

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

https://mega.io/ru/storage

У облачного хранилища Mega есть ряд плюсов. На старте дают 20 ГБ места, которое можно увеличить на год различными достижениями. К примеру, просто установив десктопное приложение и мобильный клиент, получаем на год ещё 10 ГБ. Приглашая друзей, можно добавить ещё места.

Регистрируемся в Mega. Для входа имеем:

  • e-mail в качестве логина
  • пароль

https://mega.io/ru/cmd

Ещё один жирный плюс — поддержка из коробки консольной утилиты MEGA CMD. Это инструмент командной строки, который работает с вашим аккаунтом и данными MEGA. Он позволяет вам получать доступ к сервисам MEGA с помощью команд.

Примечательно, что для обычной загрузки файла пакет davfs2 не требуется, достаточной одной утилиты MEGA CMD. Загрузка файла в облако будет выглядеть как-то так:

#!/bin/bash
# Задаем формат даты
TIME=`date +%Y-%b`
FILES=/tmp/www.$TIME.tar.gz
MYSQL=/tmp/mysql.$TIME.sql.gz
# Создаем архив файлов
tar -czf $FILES -P /var/www/mysite
# Создаем архив базы MySQL
mysqldump -u username --password=mypassword dbname --ignore-table=mysql.event | gzip > $MYSQL
# Загружаем данные
mega-login email@example.com password
mega-put $FILES $MYSQL backups/mysite
mega-logout
# Удаляем файлы
rm $FILES
rm $MYSQL

Скрипт взял здесь:

https://lidar.asia/technologie/bekapim-dannye-servera-na-mega/

Однако, если нужно забэкапить целую директорию с помощью rsync, то пользоваться таким скриптом не получится. На помощь придут davfs2 и WebDAV. С помощью MEGA CMD мы поднимем WebDAV сервис на нашем сервере и смонтируем папку из Mega локально с помощью davfs2.

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

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

apt install davfs2

linux

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

linux

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

linux

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

mega

Установка MEGA CMD

https://mega.io/ru/cmd

mega

Находим команду для установки MEGA CMD под нашу ОС. У меня Ubuntu Server 22.04.

mega
cd /tmp
wget https://mega.nz/linux/repo/xUbuntu_22.04/amd64/megacmd-xUbuntu_22.04_amd64.deb
apt install "$PWD/megacmd-xUbuntu_22.04_amd64.deb"

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

mega

Проверяем что пакет установлен:

mega-help
mega

Запуск сервера WebDAV

Пакет MEGA CMD установлен, с помощью него подключимся к Mega. В облаке в корне создаю папку Backup, в которую потом буду лить бэкапы.

Подключаемся к облаку:

mega-login email@example.com password

Подключаем директорию Backup в облаке по WebDAV:

mega-webdav /Backup
mega

Директория подключилась и доступна локально по адресу:

http://127.0.0.1:4443/ecljyKBB/Backup

У вас будет другой путь, он уникален для каждой директории. Путь также можно посмотреть в web-интерфейсе Mega.

Для отключения:

mega-logout

До перезагрузки настройки WebDAV сохраняются. Отключить можно командой:

mega-webdav -d /Backup

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

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

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

chmod 600 $HOME/.davfs2/secrets

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

$PathToMountPoint $USER $PASSWORD

В нашем случае:

http://127.0.0.1:4443/ecljyKBB/Backup user password

Где user и password я от балды указал, без атрибутов не хочет работать.

mega

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

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

linux

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

http://127.0.0.1:4443/ecljyKBB/Backup /backup davfs user,rw,noauto 0 0

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

Монтируем

Вроде всё настроили проверим. 

mega-login email@example.com password
mega-webdav /Backup

Монтируем директорию:

mount /backup

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

cd /backup
touch 123.txt
mega

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

mega

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

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

cd ..
umount /backup
mega-logout
mega

Всё работает, минимальная конфигурация для работы с облачным диском из Mega в 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://github.com/meganz/MEGAcmd/blob/master/contrib/docs/WEBDAV.md

Примечание

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

/var/cache/davfs2/

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

mega

Теги

 

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

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

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

Теги

Резервное копирование Atlassian JIRA через GUI

Резервную копию Atlassian JIRA можно сделать в Администрирование > Система > Импорт и Экспорт > Резервное копирование. Здесь вы сможете сделать резервное копирование содержимого базы данных в доступном формате XML.

Теги