我目前正在运行一个加载php脚本的cron作业。
我不断收到错误,sh 1 /usr/bin/php: not found.
我尝试了另外两种方法,但无济于事。在 Perl 脚本上。我试过了。
my $x = qx('/usr/bin/php /home/script.here');
这不会生成任何内容,并在我的邮件中向我发送错误消息。但是如果我跑线
/usr/bin/php /home/script.here
在我的外壳上,它可以工作。
我还创建了一个脚本 1.sh 并有了这个。
#!/usr/bin/php -v
我./1.sh
运行脚本,它显示了结果。但是一旦我尝试通过 cron 或 /bin/sh 1.sh
调用它,它就会失败并且即使明确说明也无法找到 php 路径。
我错过了什么吗?
我也在 php5 上尝试过这个,但同样的错误。
问题是 qx() 运算符中的单引号。删除它们:
my $x = qx(/usr/bin/php /home/script.here);
只要它们在那里,shell就会尝试在目录"/usr/bin/php /home
"中找到命令"script.here
"(是的,目录名称中有空格)。
完全忘记了这个问题。找到了解决方案。
我刚刚添加了SHELL=/bin/bash在crontab中,脚本工作了。