#Описание и признаки неисправности
Администратор добавляет задание в планировщике хостинга и нажимает сохранение, но оно исчезает из списка или не оказывается в системном расписании. Это отличается от случая, когда cron записан успешно, но скрипт выполняется с ошибкой. Сначала проверьте, попадает ли задание в список, как панель обрабатывает синтаксис и какого пользователя она обслуживает; не создавайте второе задание в системном crontab одновременно.
#Как отличить возможные причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Некорректное расписаниеВ поле времени указаны шесть полей, лишний пробел или недопустимые значения. | После сохранения форма возвращает ошибку либо пункт исчезает. | Привести расписание к формату именно выбранной панели. |
| Не хватает прав/квотыУ пользователя запрещён cron, недостаточно места или превышен лимит задач. | Другие задачи доступны, запись новой не создаётся; есть сообщение панели. | Проверить права аккаунта и свободное место. |
| Панель пишет не в тот crontabВ системе cron работает от отдельного пользователя, отличного от SSH. | crontab -l по SSH не показывает задачу из панели. | Сверить владельца расписания и посмотреть пользовательский crontab. |
#Пошаговая диагностика и решение
- Сохраните исходные сведения и отличите две неисправностиВ панели войдите в раздел «Планировщик»/«Задачи cron» нужного пользователя — названия различаются по системе. Скопируйте текст команды и расписание в локальную заметку без паролей. Попробуйте сохранить, обновите страницу и откройте список. Если задача присутствует, но не выполняется, рассматривайте отдельно журнал запуска, путь к PHP и права; повторно добавлять её не нужно.
- Проверьте формат полей расписанияВ классическом cron пять полей: минута, час, день месяца, месяц и день недели, затем команда. Если панель предлагает отдельные поля, заполняйте их по очереди и не вставляйте шестое поле секунд. Для безопасной проверки можно выбрать раз в 5 минут (
*/5 * * * *) только для безвредного тестового задания. Некоторые панели сами добавляют пользователя и команду — строго следуйте подсказкам формы. - Проверьте саму команду на абсолютные путиНе пишите
php script.phpбез уверенности в рабочем каталоге. Сверьте полный путь к исполняемому файлу PHP и скрипту: он может отличаться от интерпретатора сайта. В FASTPANEL версии PHP для CLI и сайта задаются отдельно. Для диагностики начните с команды чтения времени без сети и записи в защищённый каталог, а не с отправки писем или обновления базы. - Создайте одно безвредное тестовое расписаниеВ панели добавьте временную задачу с допустимой частотой, например
*/5 * * * *для классического cron, а как команду —date -uс выводом в штатный журнал задания. Если панель требует перенаправление вывода в файл, используйте существующий доступный только владельцу каталог, а не общий корень сайта. Нажмите сохранение один раз и проверьте, появился ли новый пункт. Не создавайте десятки тестов: они могут запустить параллельные процессы. - Сверьте системный crontab указанного владельцаПри доступе по SSH введите
crontab -l: команда показывает расписание текущего SSH-пользователя. Если панель использует другого пользователя, администратор выполняетsudo crontab -l -u ИМЯ_ПОЛЬЗОВАТЕЛЯ; замените маркер реальным системным именем. Сообщениеno crontab for ...означает отсутствие расписания в этой учётной записи, а не обязательно сбой панели. Не запускайтеcrontab -r, он удаляет все задания. - Проверьте квоту и службу cron отдельноВ панели посмотрите квоту диска и права учётной записи, при доступе к системе выполните
df -hиdf -i. На Debian/Ubuntu администратор может проверитьsystemctl status cronиjournalctl -u cron --since "1 hour ago"; на другой ОС служба может называтьсяcrond. Остановленная служба объясняет невыполнение, но не всегда исчезновение записи из панели. Сопоставьте сообщения журнала с точным временем сохранения. - Не правьте crontab панели параллельно вручнуюЕсли задача отсутствует и в панели, и в верном пользовательском crontab, посмотрите журнал ошибок панели и обратитесь к провайдеру: запрет прав, сбой сохранения или внутренняя ошибка. Не создавайте копию в
/etc/crontabвручную: при последующей починке панели обе задачи начнут выполняться одновременно. При смене способа управления сохраните копию всех существующих задач. - Проверьте выполнение теста и удалите егоПосле появления задачи в расписании дождитесь предусмотренного ближайшего запуска, сравните фактическое время в журнале с часовым поясом сервера и запланированным UTC/местным временем. Если задание не запускается, проверьте права скрипта и используемый PHP в отдельной диагностике. Если тест успешен, удалите только созданную тестовую задачу через панель, убедитесь, что реальные задания остались неизменными; при неуспехе приложите журнал без секретов.
- Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Проверка результата и дальнейшие действия
Задача считается созданной, когда видна в списке панели и в расписании нужного пользователя, а журнал подтверждает ровно один запуск в назначенное время. Если запись исчезает при сохранении, сообщите поддержке время, пользователя, расписание и текст ошибки; не пересылайте токены и команды с паролями.