Здравствуйте, уважаемые читатели. Сегодня статья на тему: "Бэкап сайта в Google Диск". Рассмотрим настройку ручного и автоматического резервного копирования сайта в Google Диск.

Бэкап сайта – это резервное копирование файлов сайта, и дампа базы данных сайта, для возможности восстановления, в случае непредвиденных обстоятельств, либо программного или аппаратного сбоя.

Для наших целей, в статье я буду использовать утилиту DRIVE. DRIVE – это консольная утилита для загрузки, скачивания, и удаления файлов в Google Диск. Утилита DRIVE работает на всех операционных системах Linux.

Скачивание и установка утилиты DRIVE

  • Скачать DRIVE, можно при помощи утилиты wget.
# wget -O drive https://drive.google.com/uc?id=0B3X9GlR6EmbnMHBMVWtKaEZXdDg
  • После скачивания, перемещаем утилиту в директорию /usr/sbin/, и добавляем нужные права для её работы.
# mv drive /usr/sbin/drive
# chmod +x /usr/sbin/drive
  • При первом запуске, нужно будет произвести подключение к Вашему Google аккаунту, и дать разрешение на подключение утилиты к Вашему Google Диску.
  • Запускаем утилиту.
# drive
  • В консоли появляется ссылка, которую нужно ввести в браузере, и перейти по ней. Ниже появляется приглашение для ввода верификационного кода.
настройка утилиты drive для работы с Google Диском - шаг 1
  • При переходе по ссылке в браузере, если в данный момент Вы не авторизованы в аккаунте Google, Вам предложат авторизоваться.
настройка утилиты drive для работы с Google Диском - шаг 2
  • Если Вы авторизованы, то сразу появится окно с вопросом о доступе приложения к Вашему аккаунту. Нужно дать разрешение.
  • После Вашего разрешения, в браузере появится верификационный код, который нужно скопировать и ввести в консоли. Вводим код, и жмём на «Enter».
  • После произведённых действий, Вы можете пользоваться всеми возможностями DRIVE.
  • Список всех команд, можно посмотреть с помощью команды drive help.
  • Основные команды:

# drive list - список файлов
# drive upload --file /путь/до/файла - загрузка файла на диск
# drive download -i идентификатор файла - скачивание файла с диска
# drive delete -i идентификатор файла - удаление файла на диске

  • Идентификатор нужного файла, можно узнать посмотрев список всех файлов. При просмотре списка, возле каждого файла будет отображаться его идентификатор.
# drive list

Ручное резервное копирование в Google Диск.

Алгоритм действий при резервном копировании в Google Диск, заключается в первоначальном создании локального бэкапа, с последующей загрузкой в Google Диск. После загрузки в Google Диск, локальные копии удаляются.

В предыдущей статье, мы рассматривали установку и настройку LEMP в Debian 10. В частности произвели установку cms WordPress.  Я для примера, буду производить бэкап директории и базы данных, из предыдущей статьи.

  • Создаём бэкап файлов сайта, и дамп базы данных в локальной директории.

# tar -czvf /var/www/test.ru/backup-`date +"%Y-%m-%d"`.tar.gz -C /var/www/test.ru/ site
# mysqldump -u admin -p123 test | gzip -c > /var/www/test.ru/mysql-`date +"%Y-%m-%d"`.sql.gz

Дамп базы данных test, пользователь admin, с паролем 123.

  • Загружаем созданные архивы в Google Диск.

# drive upload -f /var/www/test.ru/backup-*.tar.gz
# drive upload -f /var/www/test.ru/mysql-*.sql.gz

  • После загрузки архивов в Google Диск, удаляем локальные файлы.

# rm -rf /var/www/test.ru/backup-*.tar.gz
# rm -rf /var/www/test.ru/mysql-*.sql.gz

Автоматическое резервное копирование в Google Диск

  • Для настройки автоматического резервного копирования, достаточно создать скрипт с командами из ручного бэкапа, и добавить задание на выполнение скрипта в системный cron.
  • Создаём директорию для скрипта, и сам скрипт /root/bin/backup.sh.
# mkdir /root/bin

#!/bin/sh
# Создание архива
/usr/bin/tar -czvf /var/www/test.ru/backup-`date +"%Y-%m-%d"`.tar.gz -C /var/www/test.ru/ site

# Выгружаем базу данных
/usr/bin/mysqldump -u admin -p123 test | gzip -c > /var/www/test.ru/mysql-`date +"%Y-%m-%d"`.sql.gz

# Закачиваем файлы на g.drive
/usr/sbin/drive upload -f /var/www/test.ru/backup-*.tar.gz
/usr/sbin/drive upload -f /var/www/test.ru/mysql-*.sql.gz

## Удаляем временые файлы
rm -rf /var/www/test.ru/backup-*.tar.gz
rm -rf /var/www/test.ru/mysql-*.sql.gz

  • Делаем скрипт исполняемым.
# chmod 0740 /root/bin/backup.sh
  • Добавляем в файле /etc/crontab, задание на ежедневное выполнение скрипта в 02:30 ночи.

# 30 2 * * * root /root/bin/backup.sh >/dev/null 2>&1

задание в cron на бэкап в Google Диск

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

Восстановление сайта из бэкапа в Google Диск

  • Заходим в директорию, на одну директорию выше корневой директории сайта. В моём случае это /var/www/test.ru/.
# cd /var/www/test.ru/
  • Загружаем в эту директорию архивы бэкапа. Делаем это любым удобным способом.
  • При использовании утилиты DRIVE, сначала узнаём идентификаторы нужных файлов.
# drive list
  • Узнав идентификаторы, производим скачивание нужных файлов на сервер.
# drive download -i идентификатор_архива_с_файлами_сайта
# drive download -i идентификатор_архива_с_дампом_базы_данных
  • Удаляем коревую директорию сайта.
# rm -rf /var/www/test.ru/site
  • Извлекаем содержимое архива с файлами сайта, в моём случае, команда будет такой:
# tar -xzvf backup-2021-07-22.tar.gz
  • Файлы сайта мы восстановили, переходим к восстановлению базы данных.
  • Разархивируем архив с дампом базы данных. В моём случае это будет так:
# gunzip mysql-2021-07-22.sql.gz
  • Подключаемся к базе данных, под нужным пользователем и паролем, и загружаем дамп базы данных.

# mysql --host=localhost --user=admin --password=123 test;
# source /var/www/test.ru/mysql-2021-07-22.sql
# quit;

  • На этом восстановление завершено. Осталось только удалить оставшиеся файлы бэкапов.
# rm -rf /var/www/test.ru/backup-2021-07-22.tar.gz
# rm -rf /var/www/test.ru/mysql-2021-07-22.sql

Вот такими не сложными действиями, можно организовать резервное копирование сайта в Google Диск, и произвести восстановление при необходимости.

Сегодня мы рассмотрели тему: "Бэкап сайта в Google Диск". Произвели ручной бэкап сайта, настройку автоматического бэкапа, и восстановление сайта из резервной копии. Смотрите так же, видео по теме.

Надеюсь статья была вам полезна. До встречи в новых статьях.

С уважением, Андрей Бондаренко.


Видео на тему "Бэкап сайта в Google Диск":