Копирование архивов бекапов VestaCP на Яндекс.Диск

Для быстрого переноса бекапов в другие расположения или для сохранения бекапа при переустановке сервера можно настроить копирование архивов бекапов на Яндекс.Диск. Сделать это можно через Rest.API.

1. Настроим API ключ для работы сервера с Яндекс.Диск
Перейдем по ссылке oauth.yandex.ru/
pic.1
Даем название и описание приложению
Название и описание
pic.2
Проматываем до Яндекс.Диск Rest.Api. Ставим все галочки.
Даем разрешение на взаимодействие с диском
pic.3
Ключ будет актуален 1 год, не забываем обновить через год. Нажимаем сохранить.
Разрешение дается на 1 год, не забываем обновить ключ через 1 год
pic4.
Сохраняем ID и пароль.
Сохраняем ключ и пароль
Для получения токена переходим по ссылке
https://oauth.yandex.ru/authorize?response_type=token&client_id=<id_приложения>

ID вставляем в ссылку с снимка 4
Нажимаем «Разрешить»
Сохраняем полученный токен
pic.5

Сохраняем токен

2. Устанавливаем Rest.Api
git clone https://github.com/abbat/ydcmd.git
cp ydcmd/ydcmd.py /usr/local/vesta/bin/ydcmd

Создаем файл для сохранения токена для подключения к Rest.Api
nano /root/.ydcmd.cfg

Вставляем строки
[ydcmd]
token = 1234567890

Токен берем с снимка 5.
Меняем права на файл.
chmod 400 /root/.ydcmd.cfg

Проверяем работу копирования данных
/usr/local/vesta/bin/ydcmd put --rsync /backup/ disk:/backup

После выполнения на Яндекс.Диск должны появиться текущие архивы Вашего сервера.

3. Добавляем в скрипт бекапа копирование данных на Яндекс.Диск.
nano /usr/local/vesta/bin/v-backup-users

Меняем блок IF на следующий
if [ ! -z "$check_suspend" ]; then
        echo -e "================================" >> $log
        echo -e "$user" >> $log
        echo -e "--------------------------------\n" >> $log
        $BIN/v-backup-user $user >> $log 2>&1
        echo -e "\n--------------------------------\n\n" >> $log
        ##Send backup to yandex.Disk##
        free=`/usr/local/vesta/bin/ydcmd info | grep Free | cut -f5 -d' '`
        home_size=`du -s -B G /home | cut -f1`
        free=`echo $free | cut -f1 -d'G' | sed "s/\./,/g"`
        home_size=`echo $home_size | cut -f1 -d'G' | sed "s/\./,/g"`
        if (( $free > $home_size  ));
        then
        /usr/local/vesta/bin/ydcmd put --verbose --rsync /backup/ disk:/backup >> $log 2>&1;
        fi
        ##End Copy##
    fi


Использованные ссылки для написания статьи
moonback.ru/page/vestacp-backup-to-yandex-disk
github.com/abbat

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.