#php #linux #cron
#php #linux #cron
Вопрос:
У меня есть cronjob, который выглядит следующим образом:
30-59/1 13 * * 1-5 /usr/bin/php /home/myproject/main/logic.php 2>amp;1 >>/home/myproject/main/cronlog.txt
Я могу нормально запустить скрипт из командной строки.
И я вижу, что он запускается в системном журнале.
grep CRON /var/log/syslog
Apr 5 18:51:01 ip-x-x-x-x CRON[30277]: (ubuntu) CMD (/usr/bin/php /home/myproject/main/logic.php 2>amp;1 /home/myproject/main/cronlog.txt)
Разрешения:
-rwxrwxr-x 1 root root 4791 Apr 5 18:31 logic.php
В моем php-файле:
require '/home/myproject/main/data.php';
require '/home/myproject/vendor/autoload.php';
Но код в моем скрипте фактически не выполняется.
Есть идеи, что я здесь делаю не так?
Комментарии:
1. Вы проверили журналы ошибок?
2. Я отправляю stderr в текстовый файл, но он пуст. Какой-либо конкретный журнал, который я должен проверить?
Ответ №1:
Вы отправляете stderr в стандартный вывод, но никуда не отправляете стандартный вывод. Необходимо поместить > перед вашим файлом.
30-59/1 13 * * 1-5 /usr/bin/php /home/myproject/main/logic.php 2>amp;1 >/home/myproject/main/cronlog.txt