0 レビュー
0 回答
apache-PHPで作成されたcrontabは、リスト内のすべてのcronジョブを起動しません
AWSEC2サーバーでApacheを実行しています。 PHP shell_exec
を使用して、実行中のcronジョブのリストを作成しています。リストは長く、各cronジョブには最大4000行あり、3つの異なるエンドポイントの1つと変数があります。
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
...
エンドポイントを起動したときの応答をキャッチするログを追加しましたが、何らかの(不明な)理由により、cronジョブの約95%のみが起動されます。
起動しないcronジョブの1つは、最初の行です:
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');
を実行すると、すべてのエンドポイントが手動で機能しますが、必ずしも時限cronジョブを介してではありません。
crontabはshell_exec
(システムの構造上必要)で作成されているため、cronジョブのエラーログが見つからないと思います。どこでも-私が間違っている場合は訂正してください。
あなたの考えを教えてください。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。