logo

Перенос бэкапов VestaCP на Яндекс и Google диски

Разместил , . Последнее изменение: 2018-04-21. / 3 комментария

перенос бэкапов vestacp на облачный диск

  1. Перенос бэкапов VestaCP на Google Диск.
  2. Перенос бэкапов VestaCP на Яндекс.Диск.

Привет, дорогой читатель. Сегодня речь пойдет про перенос бэкапов сайтов, созданных в VestaCP, на Яндекс.Диск и Google Диск. Ведь все мы знаем, что хранить бэкапы только в одном месте плохая затея. Поломка сервера, действия хакеров, ошибки администрирования могут привести к необратимой потере всех данных, а терять своё детище никто не хочет, да и наличие свежего бэкапа в надёжном месте добавляет уверенности в завтрашнем дне.

Что понадобится:

    1. Аккаунты Гугла и Яндекса.
    2. Установленная VestaCP.
    3. Инструкция тестируется на Ubuntu 16.04.

Перенос бэкапов VestaCP на Google Диск

Установка google-drive-ocamlfuse

С помощью этой программы мы подключим Google Диск к нашему серверу и сможем управлять файлами средствами Linux.

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse

Авторизация и подключение диска

  1. Переходим по ссылке и авторизуемся https://code.google.com/apis/console/
  2. Создаём новый проект и даём ему имя.
  3. Активируем Google Drive API. Ищем во вкладке библиотека либо в разделе "Популярные API и сервисы" → включаем.
  4. Переходим во вкладку "Учётные данные", создаём новый "Идентификатор клиента OAuth".
  5. Появляется ошибка "Чтобы создать идентификатор клиента OAuth, укажите название продукта для окна запроса доступа" → нажимаем "Настроить окно запроса доступа OAuth" → Вводим только название → Сохранить → В списке выбираем "Другие типы" → Создать.
  6. Теперь у нас есть идентификатор и секрет. Переходим к консоли и пишем:
    google-drive-ocamlfuse -headless -label me -id ИДЕНТИФИКАТОР -secret СЕКРЕТ
  7. Получаем ответ в виде ссылки, копируем и вставляем в браузер.
    Please, open the following URL in a web browser: https://accounts.google.com/...
  8. Вводим полученный код в консоль.

На этом авторизация закончена, остаётся создать папку и подключить Гугл Диск:

mkdir /google_dir
google-drive-ocamlfuse -label me /google_dir

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

Перенос архивов по расписанию

Вводим команду (может появиться выбор текстовых редакторов, советую выбрать nano):

crontab -e

Добавляем следующую строку в конец файла:

44 2 * * * sudo cp -R -n /backup/*.tar /google_dir/backup/

Создаём папку для копирования:

sudo mkdir /google_dir/backup/

Расшифрую команду для cron: в 2:44, по времени сервера, от имени администратора будет производиться копирование из папки "/backup/" файлов подходящих под маску *.tar, в папку "google_dir/backup/", файлы которые уже находят в целевой папке копироваться не будут. Если у вас много пользователей, а вам нужен бэкап только одного, то разумно будет изменить маску файла на admin*.tar

Удаление старых файлов

Для удаления старых бэкапов воспользуемся скриптом. Создадим новый файл и скопируем в него код из скрипта:

sudo nano /etc/delete-backup.sh

Делаем файл исполнительным:

sudo chmod ugo+x /etc/delete-backup.sh

Задаём выполнение по расписанию:

10 2 * * * sudo /etc/delete-backup.sh /google_dir/backup/ *tar 7

Расшифрую команду для cron: в 2:10 по времени сервера, от имени администратора будет производиться удаление файлов в папке "/google_dir/backup/" подходящих под маску "*tar", останется 7 самых свежих.

1 2 3 4 5

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

Установка консольного клиента Яндекс.Диск

В этот раз мы пойдем немного другим путем и не будем подключать диск к нашей системе, а воспользуемся клиентом Linux для работы с Яндекс.Диск посредством REST API. Установка немного отличается от официального. Это сделано с целью предоставления возможности пользователю admin взаимодействовать со скриптом, в частности, запускать синхронизацию через cron.

Для установки клиента вводит команды:

git clone https://github.com/abbat/ydcmd.git
sudo cp ydcmd/ydcmd.py /usr/local/vesta/bin/ydcmd

Регистрация нового приложения

Для работы консольного клиента его следует зарегистрировать oauth.yandex.ru. Нажимаем создать приложение → вводим название → выделяем все пункты в разделе "Яндекс.Диск REST API".

В разделе "Платформы" выберите "Веб-сервисы" и нажмите "Подставить URL для разработки" → нажмите "Создать приложение".

После создания приложения вы получите его id. Вставьте id приложения в соответствующее место и перейдите по ссылке → нажмите кнопку "Разрешить".

https://oauth.yandex.ru/authorize?response_type=token&client_id=полученный_id

На экране появился токен (набор букв и цифр), именно он нужен для работы приложения.

Создаем файл конфигураций:

sudo nano /root/.ydcmd.cfg

Прописываем в нем следующее:

[ydcmd]
token = abcd

Устанавливаем права для всех только чтение:

sudo chmod 400 /root/.ydcmd.cfg

Настройка резервного копирования на Яндекс.Диск

Советую, сначала, ввести команду ниже в консоль и проверить работоспособность приложения.
Переходим в VestaCP во вкладку "CRON" → добавляем задание → выбираем ежедневное выполнение, ставим ночное время → вводим следующую команду:

sudo /usr/local/vesta/bin/ydcmd put --rsync /backup/ disk:/ваша-папка

Если, такая папка уже существует на Яндекс.Диске, то все данные будут из неё удалены.Но также можно пойти в обход VestaCP используя crontab -e.

Для своей работы приложение может требовать python-dateutil:

sudo apt-get install python-dateutil

Надеюсь статья вам помола, оставляйте свои комментарии, до новых встреч.

Полезные ссылки:

  1. Подробнее про установку google-drive-ocamlfuse.
  2. Подробнее про авторизацию через google-drive-ocamlfuse.
  3. Консольный клиент Яндекс.Диск.

 

3 комментария Добавить комментарий

  • Инструкция для CentOS 7 в студию! 🙂

  • Можешь замутить инструкцию для CentOS?) Некоторые команды не пашут. То есть почти все команды

    • Добавил в список)

Оставить комментарий

* Возможна анонимная отправка комментария.

Согласен с политикой конфиденциальности *