
Системные настройки
Пакет добавляет 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_profile | prod | Профиль, который используется без явного --profile. |
mxbackup.archive_format | tar.gz | Формат по умолчанию: tar.gz или zip. |
Почта
| Ключ | Значение по умолчанию | Назначение |
|---|---|---|
mxbackup.mail_enabled | 0 | Отправлять ли отчёт о запуске. Выключено намеренно: production-архив чувствителен. |
mxbackup.mail_to | пусто | Получатели через запятую. |
mxbackup.mail_max_attachment_mb | 10 | Предел размера вложения. Архив не больше предела прикладывается к письму, больший — остаётся только на диске. |
Что приходит в письме
Письмо отправляется после успешно созданной копии и содержит:
- тему
mxBackup: success(либоwarning,error) — со служебным значением статуса; - путь к архиву и его размер в байтах;
- сам архив вложением, если он не превышает
mxbackup.mail_max_attachment_mb. Если превышает, в тексте будет строка о том, что архив не приложен.
О письме при неудачной копии
Уведомление приходит только тогда, когда архив создан. Если копия упала — кончилось место, база недоступна, dev-профиль остановлен режимом fail-closed — письма не будет. Отслеживать такие случаи нужно по коду возврата CLI (см. CLI и cron), по журналу или по вкладке «История».
Куда уезжает архив
Вложение с production-копией — это файлы сайта целиком, включая core/config/config.inc.php с паролем базы. Почта идёт через сторонние серверы и хранится в ящиках получателей. Если включаете отправку, то либо для dev-профиля, либо с шифрованием архива — см. Профили.
Хранение
| Ключ | Значение по умолчанию | Назначение |
|---|---|---|
mxbackup.retention_days | 30 | Удалять архивы старше указанного числа дней. 0 — без ограничения по возрасту. |
mxbackup.retention_count | 10 | Сколько свежих архивов хранится всегда. 0 — без ограничения по количеству. |
mxbackup.lock_ttl_minutes | 720 | Справочное время жизни блокировки; записывается в файл блокировки для диагностики зависшего запуска. |
Ротация применяется после каждого успешного запуска и вручную командой 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. Ставить ноль стоит только там, где за наличием копий следит что-то ещё.
Порядок разрешения конфигурации
Значение берётся из первого источника, где оно задано:
- параметры командной строки —
--profile,--format,--storage-path,--mail-to,--no-mail; - общий PHP-файл дополнительных настроек — из
mxbackup.config_pathилиcore/config/mxbackup.php; - файл профиля — из каталога
mxbackup.config_dir; - системные настройки MODX — таблицы выше;
- встроенные значения пакета.
То есть системные настройки задают умолчания для всего сайта, профиль уточняет их под конкретную задачу, а запуск из cron может переопределить формат или каталог, ничего не меняя в базе.
Общий файл дополнительных настроек
Файл нужен в двух случаях: когда конфигурацию хотят держать вне базы (например, разной на боевом сервере и на стенде) и когда требуется параметр, которого нет среди системных настроек.
Пример поставляется вместе с пакетом — core/components/mxbackup/docs/config.example.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_size | 500 | Сколько строк читается из таблицы за один проход при дампе. Уменьшают на таблицах с очень «широкими» строками, если процессу не хватает памяти. |
allow_web_storage | false | Разрешает каталог архивов внутри webroot. |
allow_web_storage — крайняя мера
Каталог архивов внутри webroot означает, что архив может быть скачан по прямой ссылке; production-копия содержит core/config/config.inc.php с паролем базы данных. Включать этот параметр можно, только если каталог закрыт средствами веб-сервера, и лучше не включать вовсе. Запрет на core/cache и корень сайта действует в любом случае.
Где искать журнал
Если на сайте установлен mxLogger, запуск, завершение и ошибки пишутся в него с тэгами mxbackup и backup, а записи одного запуска связываются идентификатором процесса mxbackup_<id записи истории>.
Если mxLogger не установлен или его вызов завершился ошибкой, сообщения уходят в стандартный журнал MODX с префиксом [mxbackup]. Терять события пакет не должен ни в одном из случаев.
Кроме журнала, каждый запуск сохраняется в таблице mxbackup_run и виден во вкладке «История»: статус, архив, размер, длительность, а по двойному щелчку — полный отчёт с предупреждениями и составом.
