Итак продолжим цикл статей про бекап сайта на различные носители, облака и сервисы. Теперь у нас на очереди:
Бекап сайта на Google Drive
Все свои завязки по бекапам, я проделываю со своим простеньким скриптом,
который описан в этой теме.
Итак, прежде чем, вам предоставлять какую-либо информацию естественно я шерсю интернет, на наличие более простых решений, а именно простеньких скриптов для бекапа. Но какого же было мое удивление, когда последние скрипты бекапа на
google drive датированы 2010-2011 годами. Естественно, нет никакого желания проверять старые скрипты, которые уже не работают, тем более перейдя на сайт google я увидел, что он блокирует скрипты которые не используют свои библиотеки для API, ну чтоже, берем напильник и начинаем создавать основу для бекапа.
Первое, что мы должны сделать, нам перейти в
Консоль Google и перейти на вкладку
APIs & auth - APIs м включить функцию
Drive API
Переходим на вкладку
Credentials и создаем нового клиента.
Нажимаем и выбераем в меню
Service account
Нажимаем далее и нам предлогают сохранить ключ, сохраняем и не потеряйте его он нам еще нужен будет, гугл повторно скачать его не даст.
Самое простое мы сделали. Теперь нам опять понадобиться доступ SSH, чтобы залить на сервер необходимые библиотеки API Google.
Для этого, переходим в консоль под рутом и устанавливаем необходимые библиотеки.
Code:
git clone https://github.com/lukaszkujawa/cp2google.git
Это доработанная библиотека, из которой убрано все лишнее, если вы хотите, вы можете скачать и установить официальный релиз
https://developers.google.com/drive/quickstart-php я не стал замарачиваться.
После скачивания архива переходим в папку
Теперь в этой папке нам нужно заменить файл
cp2google.php чтобы работал скрипт на бекап, для этого скачайте его прикрепленного файла и замените им файл на сервере.
Помните ключ, что вы скачали с гугла, его залить в эту же папку.
Теперь нам осталось настроить конфиг
Тот кто незнает команды vim может просто найти на сервере папку
cp2google и открыть там файл
cp2google.php
Нам нужно исправить верхнюю часть со своими данными
Code:
define( 'BACKUP_FOLDER', 'название папки на гугл драйв' );
define( 'SHARE_WITH_GOOGLE_EMAIL', 'ваше мыло@gmail.com' );
define( 'CLIENT_ID', 'клиент ид нужно сюда вставить с сайта гугл' );
define( 'SERVICE_ACCOUNT_NAME', 'суда вставить email клиент' );
define( 'KEY_PATH', '/root/cp2google/ваш скрипт');
Ну вот как бы и все, теперь нам остается только запустить скрипт.
Помните в этой статье я предложил вам скрипт для бекапа, я напишу команду запуска на его основе.
Тоесть этот скрипт создает 2 папки file и mysql в которых лежит папка домена и его данные. Скрипт дописан так, чтобы с этих папок брать все бекапы что есть и заливать в Google drive.
Пример команды
Code:
php cp2google.php /var/backup/mysql/alexrakov.ru/
или
Code:
php cp2google.php /var/backup/file/alexrakov.ru/
И все, консоль автоматически создаст папку в Гугл диске, как вы ее назвали в скрипте и зальет туда все скрипты из папки с бекапами.
По аналогии вы можете создать крон задачу, но я думаю знающие подскажут.
Спасибо
Kerk за идею с циклом о бекапах и
Luvilla которая пинает, чтобы я что либо делал а не ленился.
P/S забыл добавить на почту что укажете в скрипте полетят письма с бекапами, то есть с сылками на бекапе с гугл диска.