Crontab, созданный на PHP, не запускает все задания cron в списке

#php #apache #amazon-ec2 #cron #shell-exec

#php #апач #amazon-ec2 #крон #оболочка-исполнитель

Вопрос:

Я запускаю apache на сервере AWS EC2. С помощью PHP shell_exec я создаю список моих запущенных заданий cron. Список длинный, ~4000 строк, каждое задание cron имеет одну из трех разных конечных точек и переменную.

Вот фрагмент списка, когда я запускаю shell_exec('crontab -l') :

 MAILTO="" 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_trend.php 1 1 13 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_portfolio_live.php 1 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_portfolio_close.php 1 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_trend.php 2 1 13 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_portfolio_live.php 2 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_portfolio_close.php 2 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_trend.php 3 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_trend.php 8 1 13 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_portfolio_live.php 8 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_portfolio_close.php 8 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_trend.php 9 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_trend.php 10 1 13 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_portfolio_live.php 10 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/email_portfolio_close.php 10   ...  

Я добавил журнал, который улавливает ответ при запуске конечной точки, но по какой-то (неизвестной) причине выполняется только около 95% заданий cron.

Один из закадычных друзей, который не стреляет, — это первая строка:

 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/send_trend.php 1  

Но строка № 4 (та же конечная точка, но другая переменная) срабатывает:

 1 22 * * 1-5 /usr/bin/php /var/www/html/engine/emails/send_trend.php 2  

Я удалил конечные точки, чтобы регистрировать только вызываемый файл, так что ничего не зависит от

Все конечные точки работают вручную при выполнении shell_exec('/usr/bin/php /var/www/html/engine/emails/send_portfolio_live.php 1'); , но не обязательно с помощью заданий хронометража.

Поскольку кронтаб создается через shell_exec (что требуется из — за структуры системы), я не думаю, что смогу где-либо найти журнал ошибок для заданий cron-пожалуйста, поправьте меня, если я ошибаюсь.

Дай мне знать, что ты думаешь?

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

1. Почему shell_exec используется для cron процесса? Вы могли бы поставить gt; /var/log/something.log после сценария, чтобы посмотреть, что произойдет, когда он запустится. shell_exec('/usr/bin/php /var/www/html/engine/emails/send_portfolio_live.php 1 gt; /var/log/something.log');