无法从crontab执行命令?

时间:2011-06-15 16:39:26

标签: php command-line crontab execute

我希望每天16:00在我的数据库中更新一些内容。

所以我使用crontab执行命令,运行我运行更新的file.php。当我在bash中执行命令但是crontab出现问题时,它可以正常工作。

的crontab:

00 16 * * * ./etc/cron.daily/maj_cat

maj_cat

php var/www/dev/update.php

谢谢!

4 个答案:

答案 0 :(得分:3)

./ etc / cron.daily / maj_cat是一个相对路径,而var / www / dev / update.php也是,尝试:

00 16 * * * /etc/cron.daily/maj_cat

和maj_cat:

php /var/www/dev/update.php

你能做到:

00 16 * * * /usr/bin/env php /var/www/dev/update.php

答案 1 :(得分:1)

您将需要使用PHP的完整路径,

输入: 哪里是php

通常PHP驻留在/ usr / bin / php

导致: / usr / bin / php /var/www/dev/update.php

我发现通过输出到文件来测试crontab是有用的,所以你知道cron实际上正在被执行,如:

/ usr / bin / php /var/www/dev/update.php> output.txt的

如上所示,你可能最好在“var”之前放一个正斜杠。

答案 2 :(得分:1)

可能crondeaemon不使用手动设置时设置的PATH变量。 确保php在路径中(在你的crontab的头部)。

否则你可以尝试在脚本中使用绝对路径。

答案 3 :(得分:0)

Cron在运行cronjobs时使用默认配置文件,它可能具有与登录时使用的PATH变量不同的PATH变量。您可以在cronjob的开头加载自己的配置文件,以确保cronjob的环境与您的匹配登录环境。

您可以这样加载您的个人资料:

00 16 * * * ~/.profile; ./etc/cron.daily/maj_cat
相关问题