Skip to content
mxBackup
mxBackup
Резервное копирование сайта MODX Revolution 2 и 3 — архив файлов и SQL-дамп из менеджера, CLI и cron, обезличенные копии для разработки, шифрование AES-256 и безопасное восстановление.
  1. Компоненты
  2. mxBackup
  3. Начало работы
  4. Быстрый старт

Быстрый старт

Ниже — путь от установленного пакета до ежедневной копии по расписанию. Все команды выполняются из корня сайта; путь к сайту в примерах — /path/to/site.

1. Проверьте конфигурацию

bash
php core/components/mxbackup/cli/mxbackup.php validate-config

Команда проверяет то, из-за чего копия обычно падает уже в процессе: наличие нужного расширения PHP для выбранного формата, существование и доступность каталога хранения, доступность базы данных и корректность профиля. Ответ Конфигурация корректна. означает, что можно запускать копию.

Проверка выполняется только из консоли — в менеджере такой кнопки нет. Запустите её после установки пакета и после каждого изменения каталога хранения или формата архива.

Каталог архивов по умолчанию

Если настройка mxbackup.storage_path пуста, архивы складываются в каталог backups рядом с корнем сайта — то есть на уровень выше webroot. Путь внутри webroot, в core/cache или в корне сайта отклоняется до начала работы. См. Права и безопасность.

2. Посмотрите состав будущего архива

bash
php core/components/mxbackup/cli/mxbackup.php dry-run --profile=dev

dry-run не читает содержимое файлов и не пишет архив. Он собирает список файлов и таблиц, а для профиля dev дополнительно строит план обезличивания: какие колонки каких таблиц будут подменены и какие таблицы будут очищены целиком. Результат печатается в JSON и попадает в историю запусков.

В менеджере это кнопка «Проверить состав» над вкладками; результат показывается сводкой и сохраняется в «Историю».

Обязательный шаг после правки правил

Проверку состава стоит запускать каждый раз, когда вы добавили в базу свои таблицы с персональными данными или изменили правила обезличивания. Это единственный способ убедиться, что новое правило действительно попало на нужные колонки. См. Обезличивание.

3. Создайте первую копию

bash
php core/components/mxbackup/cli/mxbackup.php backup --profile=prod

Что происходит:

  1. каталог хранения проверяется и блокируется файлом .mxbackup.lock — параллельный запуск получит ошибку Другой backup уже выполняется;
  2. в истории появляется запись со статусом «Выполняется»;
  3. собирается SQL-дамп и список файлов, пишется манифест;
  4. архив создаётся во временном файле .<имя>.part.<расширение> и только после успешного завершения переименовывается в итоговый;
  5. считается SHA-256 архива, применяется ротация, при включённой почте отправляется отчёт;
  6. запись в истории закрывается статусом «Успешно», «С предупреждениями» или «Ошибка».

Что получилось

Имя файла: mxbackup-<профиль>-<YYYYMMDD-HHMMSS>.tar.gz (или .zip), где время записано в UTC.

Внутри архива:

ЭлементСодержимое
site/файлы сайта, пути относительно корня
database.sqlдамп выбранных таблиц
mxbackup-manifest.jsonверсия mxBackup, версия MODX и PHP, профиль и режим, время создания, корень сайта, контрольная сумма database.sql, признак обезличивания, предупреждения и статистика запуска

4. Поставьте копию в cron

text
15 3 * * * /usr/bin/php /path/to/site/core/components/mxbackup/cli/mxbackup.php backup --profile=prod --no-mail

Отдельная задача для очистки старых архивов не нужна: ротация применяется в конце каждого успешного запуска. Команда cleanup пригодится, если правила хранения изменились и нужно применить их прямо сейчас.

От какого пользователя запускать

Запускайте задачу от того же пользователя, от которого работает сайт. Копия, снятая под root, оставит в каталоге архивов файлы, которые веб-пользователь не сможет ни прочитать, ни удалить при ротации.

5. Настройте профиль под свой сайт

Готовые профили годятся как отправная точка, но обычно требуется уточнить два момента:

  • что не нужно в архиве. Из prod уже исключены core/cache/, core/packages/ и assets/cache/; сюда же добавляют каталоги с чужими копиями, логами и крупными выгрузками;
  • какие таблицы не нужны. Кэш поиска, статистика, очереди — их проще исключить, чем хранить в каждой копии.

Всё это правится во вкладках «Профили» и «Таблицы БД» — см. Профили.

MODX 2: правая кнопка мыши открывает половину функций

В линии для MODX 2 гриды менеджера не показывают кнопок для правки строк: профиль редактируется, правило обезличивания добавляется, а отчёт о запуске и восстановление открываются через контекстное меню строки. В линии для MODX 3 эти действия вынесены кнопками в строку. Полная карта — в разделе Профили.

Что дальше

  • Профили — состав архива, формат, шифрование, перенос настроек между сайтами.
  • Обезличивание — как получить безопасную копию базы для разработки.
  • CLI и cron — полный список команд, параметров и кодов возврата.
  • Восстановление — обратная операция и её ограничения.