Расширение AutoBackup

Последние изменения: 21.10.2024

Расширение для автоматического резервного копирования сайта школы, с загрузкой в облачное хранилище

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

После установки расширения, в «настройках > расширения» появиться «AutoBackup»

Чтобы настроить бекап, нужно:

  1. Создать задание

  2. Создать хранилище

  3. Создать задание крон на хостинге (1 раз в 60 минут).
    Пример команды можно посмотреть в настройках Автобэкапов.


Создание задания

Пункт «Общие настройки»

  • "Хранилище" - куда загружать копии. Нужно обязательно выбрать хотя бы одно хранилище. Иначе нельзя будет создать задание.

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

  • "Статус" - включает/отключает задачу для крона

Пункт «Переодичность»

Устанавливает время выполнения задания кроном. В зависимости от ваших нужд, выберете «раз в неделю»/«каждый день». Время лучше всего выбирать ночью, т.е. когда меньше всего посетителей на вашем сайте.

Пункт «Состав резервной копии»

Устанавливает, какие копии будет создавать задание.

  • «Включить файлы в бекап» — можно будет восстановить файловую систему SM

  • «Включить базу данных в бэкап» — можно будет восстановить базу данных SM

  • «Включить базу клиентов в csv» — при запуске задания, будет также создаваться .csv файл с клиентами (аналогичный тому, что создается через «Пользователи > Действие > Экспорт”)

Также в этом пункте справа показывается приблизительный размер бекапа.

Пункт «Расширенные настройки»

  • «Делить на части» — Бекап будет разбит на части. Размер части регулируется в настройках расширения. Используйте это, если на сервере мало свободного места для создания бекапов.

  • «Исключить папки» — выберете, какие папки не должны быть в бекапе файловой системы. Если, например, была выбрана папка «load», то в бекап не будет содержать дочерние папки папки «load».

  • «Исключить файлы» — выберете, какие файлы не должны быть в бекапе файловой системы. Файлы нужно перечислить через перенос строки. Записываются они от корня school-master. Пример:

  • "/index.php" исключит файл index.php из бекапа.


Создание хранилища

Хранилище можно создать, выбрав «Резервное копирование > Добавить хранилище».

Пункт «основное»

«Название хранилища» - то, как будет отображаться хранилище в админке

«Тип хранилища» - укажите, в какой сервис будут отправляться бекапы.

Пункт «Настройки FTP»

Если файл бекапа необходимо отправить в ftp, то укажите поля:

  • «Сервер(ip)» - IP адрес сервера(или его домен)

  • «Порт» - Порт ftp сервера(обычно 21)

  • «Имя пользователя» - Логин от FTP

  • «Пароль» - Пароль от FTP

  • «Путь» - папка, в которую необходимо загрузить бекап. Например, в ftp есть папка «backups». В таком случае, в это поле нужно будет указать «/backups»

Пункт «Настройки Я.Диск»

Для начала нужно создать приложение яндекс диска. Сделать это можно здесь. Указать значения:

  1.  "Платформа приложения" - "Веб-сервисы"

  2. "Доступ к данным" - "Чтение всего Диска" & "Доступ к папке приложения на Диске" & "Доступ к информации о Диске" & "Запись в любом месте на Диске" & "Доступ к Яндекс.Диску для приложений"

  • "YANDEX DISK CLIENTID" - После создания приложения, нужно скопировать со страницы приложения clientid и вставить его в это поле.

  • "oAuth token" - чтобы его получить, нужно нажать на ссылку ниже "Получить токен". Откроется страница на которой нужно войти в аккаунт яндекс. Затем скопировать код в это поле.

Пункт «Настройки Dropbox»

Для начала нужно создать приложение dropbox. Сделать это можно здесь.

  • "DROPBOX APP KEY" - ключ приложения dropbox

  • "DROPBOX APP SECRET" - cекретный ключ приложения dropbox

  • "Access token" - токен пользователя. Получить его можно нажав на ссылку ниже "Получить токен".

Пункт «Настройки протокол S3»
  • «Тип хранилища» - если вы пользуетесь хранилищами «Яндекс облако» или «Selectel», то соответственно выберете их. При этом поле «Адрес (endpoint)» не будет требовать изменений. В противном случае, выберете «Другое».

  • «Адрес (endpoint)» - Адрес сервера S3. Без указания протокола (http/https)

  • «Папка (bucket)» - имя бакета, в который нужно будет загрузить файл

  • «Идентификатор ключа» - по-другому логин для подключения

  • «Cекретный ключ» - по-другому пароль для подключения

Пункт «Локальное»
Бекапы будут сохраняться в выбранной директории на текущем сервере.

"Путь" - относительный путь от корневой директории school-master. Пример: "/backups", "/load/backups"


Пункт "Google Drive"

Для начала нужно создать приложение google. Сделать это можно здесь. Видео инструкция по созданию приложения здесь (до 3:26).

"Client ID" - айди приложения google

"Client secret" - секретный ключ приложения google

"Redirect url"  - адрес вашего сайта. Пример - "http://smdemo.ru"

"ID папки" - если оставить пустым, то бекапы будут загружаться в корень гугл диска. Если вам нужно загружать бекапы в другую папку, то укажите ее айди здесь. Чтобы получить айди папки нужно открыть нужную папку в google drive. Скопировать конец ссылки и вставить его в поле "ID папки" (пример: https://drive.google.com/drive/u/0/folders/1k2n37bp3zVIY2sHb5ckRsEd9KATmd3DN - "1k2n37bp3zVIY2sHb5ckRsEd9KATmd3DN" - это айди папки)

"Код подтверждения" - после заполнения всех полей выше, нажмите на ссылку "Получить". Откроется страница входа в аккаунт google. Авторизуйтесь. Вас перекинет на страницу, которую вы указали в "redirect url". Скопируйте полностью GET-параметр "code" и вставьте его в это поле.  


Возможные проблемы при создании бэкапов.

  • Копии не создаются. Не создано задание крон для автобэкапов.
    Создать задание для крона

  • Не корректные права на папку tmp или её владелец root
    Проверить права и владельца папки tmp на хостинге

  • Банально иногда могут быть сетевые сбои, и соединение между вашим сайтом и облачным хранилищем может прерваться.
    Это редкие и единичные случаи, но всё же имеют место быть.
    Попробовать ещё раз.

  • Задание зависает при ручном запуске.
    Если размер архива больше 200Мб, то передача в Я.диск может занят довольно много времени.
    Тесты показали скорость около 10Мб/минуту, поэтому в этом случае нужно дольше ждать, либо изменить хранилище на более быстрое.

  • Ошибка при бэкапе. Не хватает места на хостинге или в облачном хранилище.
    Может быть слишком большой объём архива. Проверить можно в настройках задания.
    Проверить свободное место на хостинге и в облаке



Дополнительно

В случае, если при ручном бекапе кажется что задание зависло, то проверить работает ли оно, или нужно попробовать заново можно так:

  1. Ввести команду в shell-клиент на сервере - `ps -ef`. Здесь будут отображаться все процессы на сервере

  2. Найти процесс `php <путь>/autobackup_cron.php`.

  3. Если такого нету, то значит крон не запущен

  4. Если есть - значит какие-то действия в нем выполняются, и стоит просто подождать

    Помогла ли вам статья?