web-dev-qa-db-ja.com

AWS EC2サーバーでcronジョブを作成する方法

AWS EC2でcronジョブを作成しましたが、機能していません。

以下の手順に従って、cronタブを作成しました。

  • ステップ1:AWS EC2 Instaceにログインしました
  • ステップ2:crontab -e
  • ステップ3:挿入モード
  • ステップ4:* * * * * php/var/www/html/welcome.phpと入力しました(毎分実行するため)
  • ステップ5::wq

Cronタブは作成されますが、実行されていません。

PHPスクリプトがある場合、私を助けてください。すべての星の間にスペースを入れる必要がありますか?

22
user2180976

まず、php/varの間にスペースを入れる必要があります。

から

* * * * * php/var/www/html/welcome.php

* * * * * php /var/www/html/welcome.php
             ^

次に、phpだけでなく/bin/phpを使用することをお勧めします。 php実行可能ファイルの場所を確認するには、コンソールでwhich phpと入力すると、ファイルパスが表示されます。したがって、次のようになります。

* * * * * /bin/php /var/www/html/welcome.php
          ^^^^^^^^

より多くの事:

  • crontabが適切に保存されているかどうかを確認しますか? crontab -lと入力します。新しいcrontab行があるはずです。
  • スクリプトは正確にこのディレクトリにありますか? ls -l /var/www/html/welcome.phpを試してください。
  • コンソールから実行した場合、スクリプトは実行されますか? /bin/php var/www/html/welcome.phpを試して、スクリプトまたはcrontabの問題かどうかを確認してください。
  • スクリプトには実行モードがありますか? chmod 755 /var/www/html/welcome.phpを試してください

エラーの原因を特定できるように、最新情報をお知らせください。

45
fedorqui

私の知る限り、EC2でcronを実行することは、* nixサーバーで実行することと変わりません。システムメッセージでエラーをチェックします。次のようにstderr/stdoutをファイルにリダイレクトすることもできます

 * * * * * <your script>  >> /var/tmp/out.log 2>&1

スターターの問題を確認してください。

3
Fergus

遅すぎるかもしれませんが、とにかく毎分スクリプトを実行するつもりであれば、コマンドはおそらく

* * * * * php /var/www/html/welcome.php
3
rrbathula