Синхронизация резервных копий VestaCP с Яндекс.Диск
02.09.2019 | by root
Оригинал: https://moonback.ru/page/vestacp-backup-to-yandex-disk
Резервных копий много не бывает. Предлагаю еще одно решение по копированию бекапов созданных панелью управления VestaCP
на Яндекс.Диск. Особенность данного решения в том, что передаваемые
данные на Яндекс.Диск синхронизируются, то есть являются полной копией
того, что лежит у вас в директории /home/bakup на сервере.
Консольный клиент
Для реализации задуманного (копирования данных на Яндекс.Диск) я воспользуюсь консольным клиентов Linux/FreeBSD для работы с облачным хранилищем Яндекс.Диск (Yandex.Disk) посредством REST API — https://github.com/abbat/ydcmd.
Установка
Моя инструкция несколько отличается от оригинальной. Для установки клиента выполните следующий код в консоли сервера:
# git clone https://github.com/abbat/ydcmd.git # cp ydcmd/ydcmd.py /usr/local/vesta/bin/ydcmd
Путь сознательно выбран не таким как в официальной документации, это сделано для того, чтобы в последствии вы могли запускать синхронизацию в Cron от имени администратора (пользователя Admin в панели VestaCP).
Получения «токена» для приложения
Чтобы данное приложение работало с облачным хранилищем Яндекс.Диск необходимо его зарегистрировать по адресу https://oauth.yandex.ru/ и получить так называемый токен.
Для этого перейдите по указанной выше ссылке и выберите следующие разрешения для приложения (название может быть любым):
После регистрации скопируйте id приложения:
и перейдите по ссылке:
Затем нужно разрешить доступ к данным Яндекс.Диска для вашего приложения:
После чего сервис перенаправит нас по ссылке вида:
И на экране будет выведена последовательность букв и цифр:
Это и есть требуемый параметр для работы приложения (консольного клиента).
Сохраняем его в файл /root/.ydcmd.cfg, который должен выглядеть примерно так:
[ydcmd] token = 1234567890
Назначаем ему правильные права доступа:
# chmod 400 /root/.ydcmd.cfg
Проверка резервного копирования на Яндекс.Диск
Выполните в консоли сервера следующую команду:
# /usr/local/vesta/bin/ydcmd put --rsync /home/backup/ disk:/Папка-резервного-копирования
где «Папка-резервного-копирования» — директория на Яндекс.Диске куда будут копироваться файлы.
Внимание!!! Если указанная папка на Яндекс.Диске существует, то все данные в ней пропадут и будут заменены на содержимое директории /home/backup/ вашего сервера.
Настройка резервного копирования по расписанию
Для настройки резервного копирования на Яндекс.Диск по расписанию создайте задание Cron от имени администратора панели VestaCP:
В моем случае каждый день в 5 часов 55 минут файлы из директории сервера /home/backup будут синхронизированы с папкой backups на Яндекс.Диске.Рекомендую прочесть: Как сделать дизайн таблиц на сайте адаптивным
Некоторые недоразумения
Столкнулся с тем, что у меня на Яндекс.Диске архивов всегда на один меньше чем на сервере. Нет самого старого. То есть если на сервере пять копий, то в диске только четыре.
Leave Your Comment
Для отправки комментария вам необходимо авторизоваться.