Отслеживание заданий CRON

Если CRON не выполняется — причины может быть две — конфигурация самой службы на сервере и скрипт, который помещен в CRON. Начинать диагностику всегда следует с просмотра логов.

 

 

Что делать если задание CRON не выполняется

CRON — служба, которая по установленному расписанию выполняет задание. При этом процесс не отслеживается и если в задании допущен ошибка и ошибки содержит скрипт, добавленный в CRON, ожидаемого результата не будет.

 

Задание в общем случае выглядит так:

5 4 * * * cd /home/site/ && /usr/bin/php somescript.php

 
CRON не выполняется
 

Если в результате выполнения скрипта, должны обновляться какие-то данные и обновление не происходит следует прежде всего попробовать запускать задание из консоли. В примере задание не выполняется потому, что файл из задания отсутствует в нужном каталоге.

 

Т.е. авторизоваться на сервере по SSH с реквизитами пользователя для которого прописан CRON и затем выполнить

cd /home/site/ && /usr/bin/php somescript.php

 

Если скрипт содержит ошибки — они будут выведены в консоль, когда ошибок нет — поможет разработчик скрипта и CRON не при чем.

 

 

При отсутствии ошибок в скрипте и успешном его выполнении из консоли следует отслеживать сами срабатывания. Самый простой способ — анализ логов.

 

Демон  CRON записывает информацию о каждом срабатывании в  /var/log/syslog.

 

Также можно скорректировать задание таким образом, чтобы запись в лог была частью задания — например, добавив конструкцию && echo `date` >> /var/log/cronlog

 

Задание примет такой вид

5 4 * * * cd /home/site/ && /usr/bin/php somescript.php && echo `date` >> /var/log/cronlog

 

Каждый раз при успешном выполнении скрипта в файл /var/log/cronlog будет дописываться время выполнения. Если время дописывается — задание выполняется успешно.

Запись опубликована автором в рубрике CRON.