У облака 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, но это может повлиять на стабильность весты.