Linux: Подключение Google Drive или бэкап для бедных

Всем привет!

Linux: Подключение Google Drive или бэкап для бедных Linux, Google Drive, Backup, Резервное копирование, Длиннопост
Однажды я озадачился вопросом резервного копирования нескольких сайтов, бэкапы которых некуда было складывать. И тут в голову пришла прекрасная идея использовать в качестве хранилища резервных копий GoogleDrive. По запросу "linux google drive" в поисковиках выводится большое количество статей по его подключению. В этих статьях в основном фигурируют два проекта - google-drive-ocamlfuse (ссылка на github https://github.com/astrada/google-drive-ocamlfuse) и gdrive (ссылка на github https://github.com/prasmussen/gdrive). Установка gdrive на CentOS (на самом деле его можно поставить на любой linux-дистрибутив) для работы с гугл-диском мне показалась намного проще. Об его настройке я и напишу в этом посте. Также оставлю здесь ссылку на пример bash-скрипта для создания резервной копии с блэк джеком и ш... шифрованием, копированием на Google Drive, и отправкой оповещения на e-mail.


Установка и настройка gdrive


Все действия ниже выполняются на CentOS7. Если вы хотите поставить gdrive на другой linux-дистрибутив, то перейдите на страницу проекта на github и скопируйте необходимую ссылку


# wget -O drive https://drive.google.com/uc?id=0B3X9GlR6EmbnMHBMVWtKaEZXdDg

# mv drive /usr/sbin/drive


# chmod +x /usr/sbin/drive


Всё, gdrive установлен. Ну очень просто)


Теперь запустим drive для запуска процесса авторизации:


# drive


Появится следующее сообщение:


Go to the following link in your browser:

https://accounts.google.com/o/oauth2/authclient_id=367116221...


Enter verification code:


Необходимо скопировать и открыть эту ссылку в браузере. После авторизации появится следующая страница:

Linux: Подключение Google Drive или бэкап для бедных Linux, Google Drive, Backup, Резервное копирование, Длиннопост
Жмем кнопку "Разрешить", после чего откроется страница с нашим кодом для проверки:
Linux: Подключение Google Drive или бэкап для бедных Linux, Google Drive, Backup, Резервное копирование, Длиннопост

Копипастим этот код в консоль и подтверждаем:


Enter verification code: 5/8r1pjcEwaRzIpF88QdA0CTwV0lacGXAE6x8czOFK6k9


Все gdrive настроен.


Проверим его работу. Создадим простой текстовый файл и скопируем его на гугл-диск:


# echo test > test.txt


# drive upload --file test.txt


где:

--file test.txt - файл, который нужно скопировать.


После выполнения команды drive upload в консоль выводится информация о загруженном файле:


Id: 0B4KhH190NxVwZ0VQRzlFbXhkVHM

Title: test.txt

Size: 5.0 B

Created: 2016-08-26 12:58:04

Modified: 2016-08-26 12:58:04

Owner: Test Account

Md5sum: d8e8fca2dc0f896fd7cb4cb0031ba249

Shared: False

Parents: 0AIKhH190NxVwUk9PVA

MIME Type: text/plain; charset=utf-8

Uploaded 'test.txt' at 5.0 B/s, total 5.0 B


Для просмотра содержимого диска используется команда drive list.


Откроем в браузере наш гугл-диск, чтобы еще раз убедиться, что файл все-таки скопировался:

Linux: Подключение Google Drive или бэкап для бедных Linux, Google Drive, Backup, Резервное копирование, Длиннопост

Для удаления файла необходимо использовать следующую команду:


# drive delete --id 0B4KhH190NxVwZ0VQRzlFbXhkVHM


Removed file 'test.txt'


где:

- 0B4KhH190NxVwZ0VQRzlFbXhkVHM - Id файла, который нужно удалить.


Скрипт резервного копирования


Теперь перейдем к нашему скрипту. Вот тут --> ссылка <-- на страницу в моем блоге, где приведен листинг скрипта, который выполняет:


-- mysqldump всех баз данных web-сервера

-- создаёт tar.gz архив необходимых директорий (в этот же архив включены и дамп-файлы баз)

-- зашифровывает полученный архив с помощью OpenSSL

-- отправляет зашифрованный архив на Google Drive (после завершения удаляет зашифрованный архив из локальной директории)

-- отправляет отчет о результате на e-mail

-- на всякий случай, храним последние копии за 7 дней локально на сервере для быстрого разворачивания.


Надеюсь, этот пост поможет кому-нибудь в настройке гугл-диска на ваших linux-дистрибутивах. Надеюсь, поможет в резервировании ваших данных - сайтов, важных документов, фоточек с котиками и т.д.


Если вы знаете какие-нибудь другие способы подключения Google Drive на linux - пишите в комментариях.


Всем удачного дня!