cron tab不工作php

时间:2011-11-04 11:03:17

标签: php cakephp cron crontab

我通过输入此命令添加了一个cronjob - crontab -e。我在该文件中添加了以下任务 -

*/5 * * * * /var/www/web/vendors/shells/aggregated_deals.php
*/5 * * * * /var/www/web/vendors/shells/deals.php

这些是php脚本。之后我重新启动了apache服务器,但这些脚本没有执行。并且syslog日志文件为空。 请帮我运行这个cron。

8 个答案:

答案 0 :(得分:2)

我认为这不会自行运行 - 您需要使用PHP解释器运行脚本,如下所示:

/usr/bin/php /var/www/web/vendors/shells/aggregated_deals.php

请注意,您的安装可能在其他位置php - 在命令行上使用命令which php来查找位置。

答案 1 :(得分:1)

我认为你不能通过这样调用它来执行PHP文件,我总是使用curl:

*/5 * * * * curl http://domain.com/page

或者,如果您不想使用Web服务器,我猜您可以使用php命令运行它:

*/5 * * * * php /var/www/web/vendors/shells/aggregated_deals.php

在crontab规则中的星标之后输入的内容将是针对系统执行的命令。如果在终端中运行命令“/var/www/web/vendors/shells/aggregated_deals.php”,我打赌没有任何反应......你需要将其作为PHP脚本调用。

答案 2 :(得分:0)

为什么不用合适的用户调用php-cli?

*/5 * * * * www-data php /var/www/web/vendors/shells/aggregated_deals.php

OR

*/5 * * * * root /usr/bin/php /var/www/web/vendors/shells/aggregated_deals.php

或类似的东西。 你已经安装了php-cli吗?

答案 3 :(得分:0)

首先,您需要确保可以使用PHP CLI。你可以通过运行它来实现:

$ php -v

如果您看到一些合理的输出,那么可以使用PHP CLI。否则你需要安装它。安装取决于您正在使用的发行版。

其次,如果要直接运行CLI脚本,则需要使它们可执行:

$ chmod +x /var/www/web/vendors/shells/aggregated_deals.php
$ chmod +x /var/www/web/vendors/shells/deals.php

第三,PHP CLI脚本与apache无关,您无需重新启动它以使CLI脚本正常工作。

答案 4 :(得分:0)

您需要告诉服务器使用PHP执行文件。按照Elnurs的描述做所有的stesps,然后将它们作为你的行放在cron中:

*/5 * * * * php -f /var/www/web/vendors/shells/aggregated_deals.php > /tmp/my.log 2>&1
*/5 * * * * php -f /var/www/web/vendors/shells/deals.php > /tmp/my.log 2>&1

如果这不起作用,您可能需要包含PHP的完整路径。 我还添加了一些行来使脚本记录任何输出。

答案 5 :(得分:0)

你需要运行蛋糕风格......你必须运行

cake shellName shellParam

我的情况就是

cake aggregated_deals > /tmp/my.log
cake deals > /tmp/my.log 2>&1

这个蛋糕在你的蛋糕文件夹中,你应该从你的app文件夹中运行它......我不知道如何从cron那里做到这一点但这就是你错了...

这是假设这些脚本是有效的cakeShells

答案 6 :(得分:0)

您需要告诉服务器使用PHP执行文件。按照Elnurs的描述做所有的stesps,然后将它们作为你的行放在cron中:

*/5 * * * * php -f /var/www/web/vendors/shells/aggregated_deals.php > /tmp/my.log 2>&1
*/5 * * * * php -f /var/www/web/vendors/shells/deals.php > /tmp/my.log 2>&1

$ chmod +x /var/www/web/vendors/shells/aggregated_deals.php
$ chmod +x /var/www/web/vendors/shells/deals.php

答案 7 :(得分:0)

我知道这是很久以后发布的,但看起来我不是唯一一个。

无论如何,我的建议是在cron行中添加php的路径:

*/5 * * * * /usr/bin/php -f /var/www/web/vendors/shells/aggregated_deals.php > /tmp/my.log 2>&1
*/5 * * * * /usr/bin/php -f /var/www/web/vendors/shells/deals.php > /tmp/my.log 2>&1

再次确保权限良好