24

我在 AWS EC2 中创建了一个 cron 作业,但它不工作。

我按照以下步骤创建 cron 选项卡:

  • 第 1 步:我登录到 AWS EC2 Instace
  • 第2步:crontab -e
  • 第 3 步:插入模式
  • 第 4 步:我输入* * * * * php/var/www/html/welcome.php(每分钟运行一次)
  • 第 5 步::wq

Cron 选项卡已创建但未运行。

如果有任何 PHP 脚本意味着请提供给我,请任何人帮助我。我需要在每颗星之间留出空格吗?

4

3 回答 3

49

首先,您需要在phpand之间放置一个空格/var

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

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

那么,你最好使用/bin/php而不是仅仅使用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

让我们保持更新,以便我们找到可能导致错误的原因。

于 2013-03-18T10:28:30.060 回答
4

可能为时已晚,但无论如何,如果您打算每分钟运行一次脚本,则命令可能应该是

* * * * * php /var/www/html/welcome.php
于 2013-05-11T08:49:46.693 回答
3

据我所知,在 EC2 上运行 cron 与在任何 *nix 服务器上运行没有任何不同。我会检查系统消息是否有任何错误。您还可以将 stderr/stdout 重定向到文件,如

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

并检查初学者的任何问题。

于 2013-03-18T05:06:24.760 回答