#Симптом и границы применимости
Копия файлов и базы не всегда включает расписания cron, systemd timers, настройки фоновых очередей и секреты окружения. После восстановления сайт может открываться, хотя почтовые рассылки, обработка заказов и очистка очередей прекращаются.
Эта инструкция относится к конкретному сайту в панели управления хостингом, когда его обслуживают Nginx, Apache, PHP-FPM или их сочетание. Названия разделов и доступность SSH зависят от установленной панели и прав пользователя; шаги, которых нет в вашем интерфейсе, выполняет администратор сервера.
#Возможные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Планировщик отсутствуетВ копию входили файлы сайта и база, но не системные задания | В cron нет нужной записи | Восстановить расписание по документации проекта |
| Сломана привязка пути или пользователяВосстановленный сайт размещён в новом каталоге | Задание пишет file not found/permission denied | Указать новый путь и минимальные права |
| Блокировка или миграция очередиВ очереди старые задания, задача ждёт недоступный сервер | Процесс запускается, но не обрабатывает новые события | Сверить состояние очереди, подключений и блокировок |
#Пошаговая диагностика и исправление
- Запишите безопасный тест результатаВыберите безвредный результат фонового задания, например отметку времени служебной очистки или тестовую запись. Не запускайте массовые рассылки, оплату, удаление данных и реальные очереди в качестве проверки.
- Проверьте состав восстановленной копииСверьте, какие части переносились: код, база, задания cron, конфигурация systemd, переменные окружения и файлы очередей. Отдельно посмотрите настройки фоновых задач в самой CMS; не считайте их автоматическим восстановлением системного расписания.
- Найдите текущие заданияВ панели выберите сайт и раздел планировщика, затем сравните с crontab пользователя. Для systemd timers используйте отдельный список. При недостатке прав обратитесь к администратору, а не запускайте всё от root.Linux · Терминал (Bash)КомандаSSH, обычно без прав администратора; показывает пользовательские задания и системные таймеры без изменения.
crontab -lsystemctl list-timers --all
- Сверьте каталоги и переменные окруженияУ восстановленного сайта могли измениться абсолютные пути и версии PHP. Проверьте путь к интерпретатору, файлу задачи и доступ к секретам, не выводя их в лог. Если приложение требует рабочего каталога, укажите его явно.
- Найдите блокировки фоновой очередиПосмотрите штатную таблицу очереди или интерфейс задач приложения. Если задача уже отмечена выполняющейся, прежде чем сбрасывать блокировку, убедитесь, что нет реально работающего процесса: иначе получите двойное выполнение.
- Проверьте тестовый режим заданияНа тестовой копии либо в предусмотренном режиме dry-run исполните одно безопасное событие от пользователя сайта, затем посмотрите отдельный закрытый журнал. Если ошибки подключения к базе — сверяйте права и параметры соединения, не копируйте пароль в командную строку.
- Верните одно расписание и наблюдайтеСоздайте необходимую запись штатным интерфейсом панели с документированной частотой и часовым поясом. Убедитесь, что старая инсталляция не выполняет то же действие. После одного срабатывания проверьте результат и откат при необходимости.
#Проверка результата
Контрольная фоновая задача успешно срабатывает ровно один раз по расписанию; массовые процессы не задублированы.
#Если проблема осталась
Если задача стартует, но не завершает работу, диагностируйте конкретную очередь, доступ к базе, диску и внешним сервисам; не удаляйте очередь целиком.
#Безопасный откат
Если после изменения ошибка усилилась, верните сохранённое значение только изменённого параметра и повторно проверьте конфигурацию используемого веб-сервера до применения. Не возвращайте всю базу или весь сервер из резервной копии, если достаточно откатить одну настройку. При отсутствии доступа к нужному уровню обратитесь к администратору с точными временем, адресом, кодом ответа и обезличенными фрагментами журналов.