Резервная копия по расписанию не запускается
Расписание в плагине Backup завязано на WP-Cron. WP-Cron — не настоящая системная служба, а запускается при открытии страниц, поэтому на тихом сайте запланированная резервная копия пропускает своё окно. Плагин показывает фактическое состояние в одном месте, вместо того чтобы заставлять его угадывать.
Что приводит прогон в движение
Прогон резервного копирования состоит из нескольких коротких проходов. Приводятся в движение они двумя путями: через cron-событие и через админ-пульс. Админ-пульс продвигается на шаг дальше на каждой странице wp-admin, которую открывает кто-то с правами администратора, причём только после того, как страница была отдана. Но он не запускает новый прогон, а лишь продвигает уже начатый — для прогона, который никогда не начинается, он не помогает.
Считать состояние
- Открой в меню WordPress пункт «Kakapo Backup».
- Перейди слева в группе «Статус» (по-немецки: „Status“) на пункт «Статус» (по-немецки: „Status“).
- Считай в карточке «Помощник WP-Cron» строки статуса.
- Проверь в группе «Конфигурация» в разделе «Расписание» (по-немецки: „Zeitplan“), включена ли «Запланированная резервная копия» и какое «Время» внесено.
- Вернувшись в раздел «Статус» (по-немецки: „Status“), нажми в карточке «Диагностика» на «Проверить заново».
- «Расписание включено» — если здесь стоит «нет», тумблер в панели «Расписание» (по-немецки: „Zeitplan“) выключен и никакой срок вообще не создаётся
- «Константа DISABLE_WP_CRON» — при «задана» WordPress не запускает cron сам, тогда системный cron обязателен
- «Следующий запланированный прогон» — называет срок и оставшееся время или сообщает «событие не зарегистрировано»
- «Последний фактический прогон» — берётся из собственного счётчика, который выставляется при срабатывании cron-события Backup; если он пуст, вместо него показывается самый свежий успешный прогон по расписанию из протокола, и только если и его нет, там стоит «ни разу не наблюдался»
Системный cron вместо открытия страницы
Эта же карточка содержит две готовые строки для настоящего системного cron, каждая с тактом в 15 минут: вариант A вызывает wp-cron.php через curl, вариант B использует WP-CLI. Оба блока уже заполнены настоящим адресом и соответственно настоящим путём этой установки и копируются напрямую. Пока DISABLE_WP_CRON не задана, карточка дополнительно показывает подходящую строку для wp-config.php.
define( 'DISABLE_WP_CRON', true );Начатый прогон останавливается
В карточке «Диагностика» есть строка «Файл блокировки задания создаётся». Если файл блокировки создать не удаётся, ни один прогон выполнить нельзя; в строке прямо названы причины: права на запись и open_basedir. Ниже карточка «Auto-Recovery» по кнопке «Очистить сейчас» убирает зависшую индикацию выполнения, а также осиротевшие временные файлы и части архивов. Запуск, который дольше десяти минут не подавал признаков жизни, считается при этом осиротевшим — его не выбрасывают, а при следующем старте подхватывают с тем же объёмом.