Пакет разработан для администраторов сайтов на Битрикс, которым требуется автоматизировать рутинные задачи по загрузке, скачиванию и восстановлению резервных копий.
На нескольких проектах возник ряд смежных задач, и решение вылилось в обобщающий пакет. Задачи связанные с загрузкой самого свежего бекапа сайта на Битрикс на FTP, скачивание файла с FTP и автоматическое развертывание сайта из резервной копии для проверки целостности и развертывание зеркала.
- Загружать на FTP/SFTP последнюю резервную копию из каталога bitrix/backup.
- Загружать резервные копии по дням недели
- Скачивать с FTP/SFTP резервную копию с учетом, если настроено, логики хранения по дням недели. Как вариант возможно забирать копию предыдущего дня.
- Распаковывать архив, настраивать подключения к БД в .settings.php и dbconn.php
- Отправлять информацию о выполнении скрипта в телеграм канал или в консоль
За счет создания своих классов унаследованных от необходимых возможно добавлять:
- Свои задачи в ход выполнения
- Своего варианта отправки информации о выполнении
- Своей логики хранения копий на FTP. Логика хранения определяет, каким образом будут распределяться и храниться резервные копии на FTP-сервере (например, по дням недели или месяцам).
Если проект еще не инициализирован через Composer, выполните команду:
composer init
Настроить источник для пакета
composer config repositories.bx-backup-tools vcs https://github.com/Voral/BxBackupTools.git
Добавить в зависимости
composer require voral/bx-backup-tools
Скопировать шаблон файла настроек и сконфигурировать под свою задачу. В конфигурации из примера есть необходимые комментарии.
По умолчанию утилита ищет конфигурационный файл config.local.php. Однако вы можете создать и другие файлы по шаблону config.*.php . Например config.dev.php, config.production.php. В примере показано как можно подключать другие настройки.
Обратите внимание: если в каталоге запуска присутствует config.php и config.local.php они будут загружены оба последовательно, т.е. local перезапишет содержащиеся в нем настройки, а которых в нем нет будут взяты из config.php
Обратите внимание: файл конфигурации может содержать чувствительные данные (например, учетные данные FTP). Рекомендуется
добавить его в .gitignore
для предотвращения случайной публикации.
cp vendor/voral/bx-backup-tools/examples/config.php config.local.php
Скрипты примеров помогут вам быстро начать работу с пакетом. Вы можете адаптировать их под свои задачи.
Для скачивания архива с FTP и развертывание из архива:
cp vendor/voral/bx-backup-tools/examples/download.php download.php
Для загрузки архива на FTP
cp vendor/voral/bx-backup-tools/examples/upload.php upload.php
Подробные примеры с комментариями можно посмотреть в примерах. Примерный шаблон скрипта:
<?php
require_once 'vendor/autoload.php';
use Vasoft\BxBackupTools\Config;
use Vasoft\BxBackupTools\Core\Application;
$configContainer = (new Config\Factory())->load('dev');
$app = new Application([
// Добавьте необходимые задачи
]);
$app->handle();
- Возможность удаления сообщений из канала Telegram по истечении определенного времени.
- Возможность перевода установки в режим "для разработки".
- Возможность закрыть публичную часть от посетителей.
- Предотвращение повторной загрузки, скачивания или развертывания архива, который уже был обработан.
- Проверка на лимит длины сообщения, отправляемого в Telegram.
- Корректное развертывание всех сайтов в режиме многосайтовости.
- Возможность выполнения заданных SQL-скриптов после развертывания БД.
Этот пакет распространяется под лицензией MIT. Подробности см. в файле LICENSE
Если у вас возникли вопросы или проблемы, создайте issue в репозитории.