У меня есть почасовой скрипт cronjob, который curl
s скрипт php. Скрипт php не выполняется. В crontab -e
У меня есть:
1 * * * * /var/www/path/to/script.sh
Делать grep cron /var/log/syslog
выходы:
Mar 23 21:45:01 Emile CRON[5339]: (root) CMD (/var/www/path/to/anotherscript.sh)
Mar 23 22:01:01 Emile CRON[5386]: (root) CMD (/var/www/path/to/anotherscript.sh)
Mar 23 22:01:01 Emile CRON[5387]: (root) CMD (/var/www/path/to/script.sh)
Mar 23 22:14:01 Emile CRON[5425]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 23 22:15:01 Emile CRON[5429]: (root) CMD (/var/www/path/to/anotherscript.sh)
Я проверил, что текущий URL curl
в script.sh
правильный и что путь в crontab -e
правильно. Я также проверил, что скрипт php работает при ручном выполнении. Что еще там? Любые идеи? Другой способ диагностики? Что это такое cd / && run-parts
в моем системном журнале?
Заранее спасибо за помощь!
Обычно может случиться $PATH
проблема. Это curl
используется с полным путем script.sh
или просто curl
?
Вы также можете изменить первую строку скрипта (если вы используете bash) с #!/bin/bash
к #/bin/bash -x
(который будет генерировать отладочную информацию из bash).
В любом случае, как сказал @derfK в своем комментарии, проверьте электронную почту пользователя на наличие ошибок (отладка скрипта также будет отправлена на электронную почту пользователя). Вы можете изменить адрес электронной почты, который cron использует для отправки сообщений. MAILTO=<email>
перед строками правила.