
Быстрый старт
Ниже — путь от установленного пакета до ежедневной копии по расписанию. Все команды выполняются из корня сайта; путь к сайту в примерах — /path/to/site.
1. Проверьте конфигурацию
php core/components/mxbackup/cli/mxbackup.php validate-configКоманда проверяет то, из-за чего копия обычно падает уже в процессе: наличие нужного расширения PHP для выбранного формата, существование и доступность каталога хранения, доступность базы данных и корректность профиля. Ответ Конфигурация корректна. означает, что можно запускать копию.
Та же проверка доступна кнопкой «Проверить конфигурацию» в менеджере. Запустите её после установки пакета и после каждого изменения каталога хранения или формата архива.
Каталог архивов по умолчанию
Если настройка mxbackup.storage_path пуста, архивы складываются в каталог backups рядом с корнем сайта — то есть на уровень выше webroot. Путь внутри webroot, в core/cache или в корне сайта отклоняется до начала работы. В форме профиля можно задать отдельный каталог; пустое поле наследует общую настройку. См. Права и безопасность.
2. Посмотрите состав будущего архива
php core/components/mxbackup/cli/mxbackup.php dry-run --profile=devdry-run не читает содержимое файлов и не пишет архив. Он собирает список файлов и таблиц, а для профиля dev дополнительно строит план обезличивания: какие колонки каких таблиц будут подменены и какие таблицы будут очищены целиком. Результат печатается в JSON и попадает в историю запусков.
В менеджере это кнопка «Проверить состав» над вкладками; результат показывается сводкой и сохраняется в «Историю».
Обязательный шаг после правки правил
Проверку состава стоит запускать каждый раз, когда вы добавили в базу свои таблицы с персональными данными или изменили правила обезличивания. Это единственный способ убедиться, что новое правило действительно попало на нужные колонки. См. Обезличивание.
3. Создайте первую копию
Перед запуском из manager пакет показывает количество и общий размер файлов и свободное место. Для той же оценки из консоли без создания архива:
php core/components/mxbackup/cli/mxbackup.php estimate --profile=prodphp core/components/mxbackup/cli/mxbackup.php backup --profile=prodЧто происходит:
- каталог хранения проверяется и блокируется файлом
.mxbackup.lock— параллельный запуск получит ошибкуДругой backup уже выполняется; - в истории появляется запись со статусом «Выполняется»;
- собирается SQL-дамп и список файлов, пишется манифест;
- архив создаётся во временном файле
.<имя>.part.<расширение>и только после успешного завершения переименовывается в итоговый; - считается SHA-256 архива, применяется ротация, при включённой почте отправляется отчёт;
- запись в истории закрывается статусом «Успешно», «С предупреждениями» или «Ошибка».
tar.gz пишется сразу в gzip-поток: отдельный несжатый TAR на диске не создаётся. Выполняющийся backup можно безопасно остановить в manager либо из второго терминала:
php core/components/mxbackup/cli/mxbackup.php cancelПакет проверяет отмену между порциями дампа, файлами и блоками упаковки, удаляет временные данные и завершает запись истории статусом «Остановлен».
Что получилось
Имя файла: mxbackup-<профиль>-<YYYYMMDD-HHMMSS>.tar.gz (или .zip), где время записано в UTC.
Внутри архива:
| Элемент | Содержимое |
|---|---|
site/ | файлы сайта, пути относительно корня |
database.sql | дамп выбранных таблиц |
mxbackup-manifest.json | версия mxBackup, версия MODX и PHP, профиль и режим, время создания, корень сайта, контрольная сумма database.sql, признак обезличивания, предупреждения и статистика запуска |
4. Поставьте копию в cron
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 — полный список команд, параметров и кодов возврата.
- Восстановление — обратная операция и её ограничения.
