Cronjobs не выполняет php-скрипты, предупреждения mailto не получены!

#php #cron #crontab

#php #cron

Вопрос:

Вот моя ситуация:

Я пытаюсь запустить php-скрипт через cron, и у меня есть crontab (/etc / crontab), который выглядит следующим образом:

 SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/var/www:
MAILTO=<myemailaddress>

m h dom mon dow user  command

*  *    * * *   root    /usr/bin/php /var/www/testing.php
  

И когда я запускаю команду /usr/bin/php /var/www/testing.php из bash / sh, все отлично. Это просто базовый php-скрипт, который записывает какую-то тарабарщину в файл. Однако мой cronjob не выполняется. Я несколько раз использовал перезапуск cron службы sudo, но все безрезультатно. Я упускаю что-то очевидное здесь?

Спасибо и ура!

Решение

Моя собственная ошибка! PHP-скрипт, который я запускал, записывал данные в файл, к которому не был получен надлежащий доступ — например, отсутствовали полные пути к файлам. Всем спасибо за помощь!

Комментарии:

1. У вас есть пустая строка сразу после вашего правила в файле cronjob?

2. Моя фактическая таблица cron начинается и заканчивается ‘#’, где закрывающий знак фунта находится в отдельной строке после моего фрагмента кода прямо там. Это EOF.

3. редактировать :: Думаю, последний комментарий исчез, что касается ОС, это просто Ubuntu. Это главная crontab, а не отдельного пользователя — то есть она находится в /etc/crontab. Пользовательские crontabs не имеют столбца user.

4. Да — я только что сделал * * * * * root echo hi >> /tmpnonsense , и это сработало. Каждую минуту он добавлял привет.

5. Можете ли вы ответить на свой собственный вопрос таким образом, чтобы помочь другим? Если вы это сделаете, вы можете выбрать свой в качестве правильного ответа. Это может показаться странным, но это предпочтительный способ справляться с подобными ситуациями.

Ответ №1:

Создайте сценарий оболочки и поместите туда команду PHP. Сделайте это executeabl и поместите в crontab.

Тогда вы сможете лучше отслеживать и изменять команду, а также проще настраивать среду (переменные, пути) для php-скрипта.