什么是cron response / bin / bash:1:命令找不到意思

时间:2017-04-15 17:52:54

标签: bash

我有以下3个crons:

php /home/mycpanelaccess/public_html/wpradmin/modules/wprrets/cron_data.php >> /home/mycpanelaccess/public_html/reports/data.htm 2>&1   

php /home/mycpanelaccess/public_html/pins/update-time.php >> /home/mycpanelaccess/public_html/reports/data.htm >2&1

php /home/mycpanelaccess/public_html/wpradmin/mbx/Modules/GeoCoding/GeoCron.php >> /home/mycpanelaccess/public_html/reports/data.htm 2>&1

它们都完美无缺,并且在列出的ordrer中每小时逐个执行它们的命令..然而,更新-time.php的中心执行作业但是发送以下响应“/ bin / bash:1:command没找到“

即使它激活并完成工作,但将响应发送到电子邮件,并且不会像其他人那样在报告点输入任何数据。

任何想法..有没有人需要看到程序eval ...似乎2>& 1可能是一个问题,因为它似乎指出1作为bash的一部分....但如果命令无法找到它是如何按照请求填写数据库中的日期..它执行了所有命令但未能将其输出发送到/reports/data.htm文件...但其他方面很好。 ..

1 个答案:

答案 0 :(得分:2)

只是为了解释会发生什么,这里是错误行的简化版本:

php my/php/script.php >> logfile >2&1

以下是它的外观,重新排列为等效,但通常写的更多:

php my/php/script.php >>logfile >2 & 1

会发生什么:

  • shell看到的命令是php my/php/script.php(毫不奇怪)
  • >>logfile重定向标准输出以附加到日志文件
  • >2重定向标准输出以覆盖文件2(替换第一个重定向,并且不会将任何内容附加到日志文件中)
  • &导致前一个命令在后台启动
  • 1被视为一个单独的命令,由于没有名为1的命令,因此您会收到错误消息

如前所述,解决方案是像其他行一样重写它:

php my/php/script.php >> logfile 2>&1