我在crontab中设置了以下命令
0 * * * * root cd /home/domain/public_html/webcrawler && php cron1.php
40 * * * * root cd /home/domain/public_html/webcrawler && php cron2.php
事情是他们没有跑步。我设置的命令中是否有明显的错误?从ssh运行或在浏览器中加载时,php脚本运行正常。我一开始就尝试过root和root。
答案 0 :(得分:4)
您应该使用完整路径调用PHP cron作业(注意,您的PHP可能位于不同的位置)
0 * * * * /usr/bin/php /path/to/your/script.php
答案 1 :(得分:2)
将&&
与;
一起更改为
0 * * * * root cd /home/domain/public_html/webcrawler; php cron1.php
或从绝对路径
执行它0 * * * * root php /home/domain/public_html/webcrawler/cron1.php
使用绝对路径时,您可以通过执行
强制执行cron脚本的当前工作目录chdir(__DIR__); //or chdir(dirname(__FILE__));
您还可以将PHP shebang添加到cron.php文件的顶部(您的php二进制文件可能有不同的路径)
#!/usr/bin/php
http://php.net/manual/en/features.commandline.usage.php
然后您可以执行脚本而无需使用
引用php二进制位置0 * * * * root /home/domain/public_html/webcrawler/cron1.php