Простой способ автоматического создания бекапа joomla сайтов с помощью Akeeba backup + Crontab

в 9:54, , рубрики: backup, Joomla, резервное копирование, метки: , ,

Всем привет. Давно являюсь читателем хабра, но только лишь читателем. Инвайта нет, а нужен то он по сути только для того, чтобы писать комментарии. Хотелось бы конечно получить его, но не было мыслей, о чем же написать. И вот наконец появилась тема.
Хочу описать процесс полностью автоматического создания резервных копий сайтов на CMS Joomla с помощью компонента Akeeba backup, причем его бесплатной версии.
Знаю, что джумлу на хабре не особо жалуют, но думаю все же найдутсяе, которые создают сайты с её помощью.

В качестве примера буду использовать Joomla 2.5.16
Первым делом нам нужно установить компонент Akeeba Backup. Скачать его можно отсюда: www.akeebabackup.com/downloads/akeeba-backup.html

Что из себя представляет резервная копия, сделанная с помощью Akeeba backup

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

Мой сайт находится на хостинге timeweb, но я думаю, что большинство хостингов имеет в своей панели управления способ создавать задания с помощью планировщика crontab. Если ваш сайт находится на собственном сервере, тут еще проще.

Первым делом нам необходимо активировать возможность делать бекап не только из панели Joomla. Для этого переходим в Компоненты -> Akeeba backup -> Component Parameters. Нужно установить переключатель на ДА в свойстве Enable front-end and remote backup. Указать секретное слово, которое будет использоваться для генерации ссылки, опционально можно включить уведомления по e-mail о выполнении бекапа.

Простой способ автоматического создания бекапа joomla сайтов с помощью Akeeba backup + Crontab

Теперь необходимо написать небольшой shell скрипт, который будет запускаться планировщиком Crontab.
Выглядит он так:

#!/bin/bash
wget --max-redirect=10000 "http://<Адрес сайта>/index.php?option=com_akeeba&view=backup&key=<Секретное слово, которое мы указывали в настройках>"

Данный скрипт осуществляет бекап нашего сайта.

После чего необходимо указать планировщику Crontab периодичность бекапа. Для хостинга timeweb это делается так: Панель Crontab. Далее выбрать Добавить новую задачу
Пишем название нашего задания, тип файла: SH сценарий, указываем путь до файла на нашем сервере (естественно файл со скриптом должен быть заблаговременно залит на сервер), ну и выбираем нужную нам периодичность бекапа.

Простой способ автоматического создания бекапа joomla сайтов с помощью Akeeba backup + Crontab

Если у вас есть полный доступ к серверу, на котором располагается сайт, то нужно занести строчку в конфиг crontab, по умолчанию расположенный в /etc/ с именем crontab

Всё, теперь наши бекапы будут делаться в автоматическом режиме по расписанию и складываться в каталог, прописанный в настройках компонента Akeeba Backup. По умолчанию: administrator/components/com_akeeba/backup/

В дальнейшем планирую расширить bash скрипт, чтобы он удалял устаревшие бекапы и также переносил эти файлы на дропбокс. Если есть какие-то мысли, как это сделать, прошу поделиться в комментариях.

Как восстанавливать сайт из резервной копии

Для того, чтобы восстановить сайт или перенести его на другой сервер, необходимо скачать набор файлов под названием Akeeba Kickstart: www.akeebabackup.com/downloads/akeeba-kickstart.html

Этот набор включает в себя следующие файлы:

  • jquery.min.js-библиотека Jquery
  • json2.min.js-библиотека Json
  • kickstart.php-PHP скрипт, выполняющий восстановление
  • ru-RU.kickstart.ini-язык локализации

Необходимо поместить эти файлы на сервер и туда же скинуть файл с бекапом, который имеет расширение jpa.
Далее просто пройти по адресу: http://<Ваш сайт>/kickstart.php и следовать инструкциям.
Если вы восстанавливаете сайт на том же сервере, где он и был, то часть настроек подтянется автоматически, иначе нужно будет указать новые настройки для корректного формирования конфига: путь к БД, имя БД, имя пользователя БД и тд.
После выполнения всех инструкций, система восстановит сайт. И никаких танцев с бубном с перезаливкой руками всех файлов(особенно противно это делать по FTP), а также ручной правкой конфигурационного файла configuration.php в корне сайта.

Автор: makc9I

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js