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

Системные настройки

Пакет добавляет 11 системных настроек MODX в трёх областях. Их можно править как в Системе → Системные настройки, так и во вкладке «Настройки» самого mxBackup — это одни и те же значения, вкладка просто собирает их в одном месте и доступна по праву mxbackup_manage.

Общие

КлючЗначение по умолчаниюНазначение
mxbackup.storage_pathпустоАбсолютный путь к каталогу архивов вне webroot. Пусто — каталог backups рядом с корнем сайта.
mxbackup.config_dir{core_path}config/mxbackup/profiles/Каталог PHP-файлов профилей. Допустим плейсхолдер {core_path}; относительный путь считается от core/.
mxbackup.config_pathпустоНеобязательный общий PHP-файл дополнительных настроек. Пусто — пакет проверит core/config/mxbackup.php.
mxbackup.default_profileprodПрофиль, который используется без явного --profile.
mxbackup.archive_formattar.gzФормат по умолчанию: tar.gz или zip.

Почта

КлючЗначение по умолчаниюНазначение
mxbackup.mail_enabled0Отправлять ли отчёт о запуске. Выключено намеренно: production-архив чувствителен.
mxbackup.mail_toпустоПолучатели через запятую.
mxbackup.mail_max_attachment_mb10Предел размера вложения. Архив не больше предела прикладывается к письму, больший — остаётся только на диске.

Что приходит в письме

Письмо отправляется после успешно созданной копии и содержит:

  • тему mxBackup: success (либо warning, error) — со служебным значением статуса;
  • путь к архиву и его размер в байтах;
  • сам архив вложением, если он не превышает mxbackup.mail_max_attachment_mb. Если превышает, в тексте будет строка о том, что архив не приложен.

О письме при неудачной копии

Уведомление приходит только тогда, когда архив создан. Если копия упала — кончилось место, база недоступна, dev-профиль остановлен режимом fail-closed — письма не будет. Отслеживать такие случаи нужно по коду возврата CLI (см. CLI и cron), по журналу или по вкладке «История».

Куда уезжает архив

Вложение с production-копией — это файлы сайта целиком, включая core/config/config.inc.php с паролем базы. Почта идёт через сторонние серверы и хранится в ящиках получателей. Если включаете отправку, то либо для dev-профиля, либо с шифрованием архива — см. Профили.

Хранение

КлючЗначение по умолчаниюНазначение
mxbackup.retention_days30Удалять архивы старше указанного числа дней. 0 — без ограничения по возрасту.
mxbackup.retention_count10Сколько свежих архивов хранится всегда. 0 — без ограничения по количеству.
mxbackup.lock_ttl_minutes720Справочное время жизни блокировки; записывается в файл блокировки для диагностики зависшего запуска.

Ротация применяется после каждого успешного запуска и вручную командой cleanup. Удаляются только файлы вида mxbackup-*.zip и mxbackup-*.tar.gz в каталоге хранения — чужие файлы пакет не трогает.

Правила связаны так: retention_count самых свежих архивов не удаляются никогда, в том числе по возрасту; всё, что старше этих N копий, удаляется по количеству, а при retention_count = 0 — по возрасту из retention_days.

Почему количество важнее возраста

Если бы возраст удалял копии безусловно, остановившийся cron через retention_days оставил бы сайт вообще без резервных копий — и заметили бы это ровно в тот момент, когда копия понадобилась. Поэтому свежие retention_count архивов переживают любой срок хранения, даже если им уже год.

Обратная сторона: при retention_count = 0 защиты нет, и cleanup вычистит каталог до конца, если все архивы старше retention_days. Ставить ноль стоит только там, где за наличием копий следит что-то ещё.

Порядок разрешения конфигурации

Значение берётся из первого источника, где оно задано:

  1. параметры командной строки--profile, --format, --storage-path, --mail-to, --no-mail;
  2. общий PHP-файл дополнительных настроек — из mxbackup.config_path или core/config/mxbackup.php;
  3. файл профиля — из каталога mxbackup.config_dir;
  4. системные настройки MODX — таблицы выше;
  5. встроенные значения пакета.

То есть системные настройки задают умолчания для всего сайта, профиль уточняет их под конкретную задачу, а запуск из cron может переопределить формат или каталог, ничего не меняя в базе.

Общий файл дополнительных настроек

Файл нужен в двух случаях: когда конфигурацию хотят держать вне базы (например, разной на боевом сервере и на стенде) и когда требуется параметр, которого нет среди системных настроек.

Пример поставляется вместе с пакетом — core/components/mxbackup/docs/config.example.php:

php
<?php

return [
  'storage_path' => '/home/site/backups',
  'default_profile' => 'prod',
  'profiles' => [
    'prod' => [
      'mode' => 'prod',
      'format' => 'tar.gz',
      'files' => [
        'include' => ['*'],
        'exclude' => ['core/cache/', 'core/packages/', 'assets/cache/'],
      ],
      'database' => ['include_tables' => ['*'], 'exclude_tables' => []],
      'masking' => ['standard' => false, 'rules' => []],
    ],
  ],
];

Файл возвращает массив и может переопределять как глобальные ключи, так и отдельные профили целиком.

Параметры, доступные только в файле

КлючПо умолчаниюНазначение
batch_size500Сколько строк читается из таблицы за один проход при дампе. Уменьшают на таблицах с очень «широкими» строками, если процессу не хватает памяти.
allow_web_storagefalseРазрешает каталог архивов внутри webroot.

allow_web_storage — крайняя мера

Каталог архивов внутри webroot означает, что архив может быть скачан по прямой ссылке; production-копия содержит core/config/config.inc.php с паролем базы данных. Включать этот параметр можно, только если каталог закрыт средствами веб-сервера, и лучше не включать вовсе. Запрет на core/cache и корень сайта действует в любом случае.

Где искать журнал

Если на сайте установлен mxLogger, запуск, завершение и ошибки пишутся в него с тэгами mxbackup и backup, а записи одного запуска связываются идентификатором процесса mxbackup_<id записи истории>.

Если mxLogger не установлен или его вызов завершился ошибкой, сообщения уходят в стандартный журнал MODX с префиксом [mxbackup]. Терять события пакет не должен ни в одном из случаев.

Кроме журнала, каждый запуск сохраняется в таблице mxbackup_run и виден во вкладке «История»: статус, архив, размер, длительность, а по двойному щелчку — полный отчёт с предупреждениями и составом.