Бекапы Vesta CP в облако cloud.mail.ru (через webdav)

У облака mail.ru раздавался бесплатный 1 Тб. Но на бесплатном тарифе у них нет WebDAV.

Эту проблему решает https://gitlab.com/Kanedias/MARC-FS, но там много сложностей с компиляцией (на моем CentOS 7 были проблемы с зависимостями версий glibc, libstdc++). Поэтому лучше запускать в докере.

Есть уже готовый образ https://hub.docker.com/r/udalov/cloud-mail-ru-docker

UPD: 18.03.2020: автор перестал поддерживать репозиторий, а у mail.ru изменился api облака, поэтому я доработал докер-образ:
https://hub.docker.com/repository/docker/parotikov/cloud-mail-ru-docker

Итак, чтобы VestaCP при создании каждого бекапа отправляла копию в облако, необходимо:

1. Создаем скрипт copy_to_mailru_cloud.sh:

#!/bin/bash
# $1 - имя папки с бекапами VestaCP, $2 - имя бекапа, $3 подпапка (я складываю бекапы в папки по дате)
chmod 755 $1
chmod 644 ${1}/${2}
docker run -v $1:/local_drive -e MAILRU_LOGIN=login@mail.ru -e MAILRU_PASSWORD=mailrupassword --rm --privileged parotikov/cloud-mail-ru-docker:1.0 mkdir -p /tmp/mailru/$3/
docker run -v $1:/local_drive -e MAILRU_LOGIN=login@mail.ru -e MAILRU_PASSWORD=mailrupassword --rm --privileged parotikov/cloud-mail-ru-docker:1.0 cp /local_drive/$2 /tmp/mailru/$3/
chmod 740 $1
chmod 640 ${1}/${2}

В скрипте выше мы на время меняем права на папки и файлы с бекапами, чтобы они были доступны в докере, создаем папку в облаке, и копируем в неё файл бекапа

2. В файл /usr/local/vesta/bin/v-backup-user в районе 548 строки (после chown admin:$user) включаем строку:

/bin/bash /root/copy_to_mailru_cloud.sh /home/backup $user.$backup_new_date.tar $date

3. Проверяем, выполнив в консоли:

/usr/local/vesta/bin/v-backup-user _username_

Идем в облако и смотрим, появилась ли папка с сегодняшней датой и бекапом в ней

Нужно учитывать, что VestaCP регулярно получает обновления, и файл /usr/local/vesta/bin/v-backup-user  может быть затерт. Я просто по крону проверяю, не изменился ли файл. Можно сделать его readonly, но это может повлиять на стабильность весты.