mibazarow.backupper
Описание
Модуль для автоматического резервного копирования Bitrix сайта на SCP/SSH
Языки
- PHP100%
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
16 дней назад
README.md
Модуль mibazarow.backupper — Резервное копирование на SCP сервер
⚠️ ВАЖНО: Модуль не достаточно протестирован. Используйте на свой страх и риск. Перед использованием на production сервере рекомендуется тщательное тестирование в тестовом окружении.
Полнофункциональный модуль для автоматического резервного копирования Bitrix сайта на SCP/SSH сервер с надежной передачей, управлением копиями и поддержкой больших файлов.
🎯 Основные возможности
Архив содержит всё для полного восстановления:
- ✅ SQL дамп БД — полная база данных (таблицы, данные, структура)
- ✅ Все файлы сайта — с исключением кэша и временных файлов (конфиги включены в состав сайта)
Расписание резервного копирования:
- Встроенные агенты Bitrix для автоматического запуска
- Настраиваемый интервал в минутах (по умолчанию 1440 = 1 день)
- Регистрируется/удаляется автоматически при установке/удалении
Ручной запуск:
- Кнопка "Создать резервную копию сейчас" на странице настроек
- Вывод статуса выполнения (успех/ошибка)
Управление копиями:
- Настраиваемое максимальное количество копий на сервере
- Автоматическое удаление старых копий при превышении лимита
- По умолчанию: 5 копий
Надежная передача:
- Retry-логика: 3 попытки при ошибке подключения/передачи
- MD5 верификация целостности файла на сервере
- Проверка размера файла после отправки
- Автоматическое переподключение при разрыве
Обработка больших файлов:
- Поддержка архивов до 2GB
- PHP лимиты увеличены: 3600 сек (1 час), 256MB памяти
- Использование
для снижения нагрузки на системуnice
📦 Состав архива
backup_2026-03-19_12-30-00.tar.gz
│
├─ database.sql ← SQL дамп БД
└─ bitrix.bxstore.ru/ ← Все файлы сайта (кроме кэша)
├── index.php
├── bitrix/
│ ├── .settings.php (конфиги здесь)
├── .htaccess (конфиги здесь)
├── urlrewrite.php (конфиги здесь)
├── local/modules/
├── upload/
└── ...
Размеры (пример): 500MB файлы + 50MB БД = 550MB → сжато ~165MB (70% эффективность)
🗂️ Временные файлы
На локальном сервере (во время создания):
/bitrix/backup/backupper_[timestamp]/
└── database.sql ← SQL дамп БД
Жизненный цикл: 1-2 минуты (во время создания дампа)
✓ Автоматически удаляется после отправки
/bitrix/backup/backup_*.tar.gz
(сохраняется временно на диске)
Жизненный цикл: 5-10 минут (время отправки на сервер)
✓ Автоматически удаляется после успешной отправки
На SCP сервере (постоянное хранилище):
/backup/
├── backup_2026-03-19_12-30-00.tar.gz ✓
├── backup_2026-03-19_11-30-00.tar.gz ✓
├── backup_2026-03-19_10-30-00.tar.gz ✓
├── backup_2026-03-19_09-30-00.tar.gz ✓
├── backup_2026-03-19_08-30-00.tar.gz ✓
├── backup_2026-03-19_07-30-00.tar.gz ✗ УДАЛЯЕТСЯ (старая)
└── ... более старые ... ✗ УДАЛЯЮТСЯ
Max: 5 копий (по умолчанию), настраивается
⚙️ Установка и настройка
1. Установка модуля:
1. Распаковать в /local/modules/mibazarow.backupper/
2. Администратор → Модули и компоненты
3. Установить "Беккапер на SCP сервер"
4. Модуль автоматически регистрирует агент
2. Конфигурация:
Администратор → Структура сайта → Беккапер на SCP
Параметры подключения:
- IP адрес сервера — адрес SSH сервера
- Порт — обычно 22
- Имя пользователя — логин SSH
- Пароль — пароль SSH
- Путь на сервере — например /backup/
Параметры резервного копирования:
- Расписание (минуты) — интервал между бекапами (1440 = 1 день)
- Макс. количество копий — сколько хранить (5 по умолчанию)
🛡️ Надежность передачи
Retry-логика:
- 3 попытки при ошибке подключения/передачи
- 2 секунды задержки между попытками
- Полное логирование каждой попытки
MD5 верификация:
- Вычисляется MD5 локального файла
- Проверяется MD5 на сервере после отправки
- При несовпадении — повторная попытка
Проверка размера:
- Размер файла проверяется после отправки
- Должен совпадать с локальным размером
- Защита от неполной передачи
Обработка ошибок:
При ошибке:
├── Логируется информация об ошибке
├── Удаляются неполные архивы
├── Переподключение к серверу
├── Автоматический повтор (до 3 раз)
└── Уведомление в админку
📊 Исключаемые директории
Не включаются в архив для сэкономления места (60-80%):
— кэш (пересоздается)bitrix/cache/— управляемый кэшbitrix/managed_cache/— кэш изображенийbitrix/image_resize/— временные файлыbitrix/tmp/— папка с резервными копиями (не нужна в архиве)bitrix/backup/— история версий.git/— npm зависимостиnode_modules/
🔍 Логирование
Все операции логируются в с ID /bitrix/log/:mibazarow.backupper
[12:30:00] Начинаем создание резервной копии: backup_2026-03-19_12-30-00.tar.gz
[12:30:01] Временная директория: /bitrix/backup/backupper_1234567890
[12:31:00] SQL дамп создан: 50 MB
[12:31:01] Архивирование файлов сайта...
[12:35:00] Архив создан: 165 MB
[12:35:02] Отправка файла: backup_2026-03-19_12-30-00.tar.gz (размер: 165 MB, MD5: 7a2b9c...)
[12:40:00] Файл успешно отправлен и проверен: backup_2026-03-19_12-30-00.tar.gz
[12:40:01] Локальный архив удален
[12:40:03] Начинаем очистку старых копий (макс. 5)
[12:40:05] Резервная копия успешно создана за 600 сек.
📋 Требования
- PHP 7.4+
- Расширение SSH2 для PHP
- Команда
(обычно установлена на Linux)tar - Команда
(для SQL дампа)mysqldump - Доступ SSH/SCP к целевому серверу
- Права на чтение файлов сайта и выполнение команд
📁 Структура модуля
mibazarow.backupper/
├── admin/
│ ├── menu.php # Меню администратора
│ └── mibazarow_backupper.php # Страница опций
├── install/
│ ├── index.php # Установщик модуля
│ └── version.php # Версия 1.1.0
├── lib/
│ ├── scpconnector.php # SSH/SCP подключение с retry
│ ├── backupmanager.php # Управление резервными копиями
│ └── agent.php # Функция агента Bitrix
├── lang/ru/options.php # Языковые строки
├── options.php # Главная страница настроек
└── README.md # Эта документация
🔧 Использование
Программное создание бекапа:
🎯 Полный процесс архивирования
1. Создание временной директории /bitrix/backup/backupper_[timestamp]/
2. Создание SQL дампа БД → database.sql
3. Архивирование (SQL дамп + файлы сайта)
(исключает: bitrix/cache, bitrix/tmp, bitrix/backup, .git, node_modules)
4. Вычисление MD5 архива
5. Отправка на SCP сервер (с retry, 3 попытки)
6. Проверка целостности (размер + MD5)
7. Удаление временной директории /bitrix/backup/backupper_*/
8. Удаление локального архива из /bitrix/backup/
9. Очистка старых копий на сервере
📞 Информация о модуле
| Параметр | Значение |
|---|---|
| Версия | 1.1.0 |
| Автор | Михаил Базаров |
| Сайт | https://bazarow.ru/ |
| PHP | 7.4+ |
| Bitrix | 17.0+ |