我有以下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文件...但其他方面很好。 ..
答案 0 :(得分:2)
只是为了解释会发生什么,这里是错误行的简化版本:
php my/php/script.php >> logfile >2&1
以下是它的外观,重新排列为等效,但通常写的更多:
php my/php/script.php >>logfile >2 & 1
会发生什么:
php my/php/script.php
(毫不奇怪)>>logfile
重定向标准输出以附加到日志文件>2
重定向标准输出以覆盖文件2
(替换第一个重定向,并且不会将任何内容附加到日志文件中)&
导致前一个命令在后台启动1
被视为一个单独的命令,由于没有名为1
的命令,因此您会收到错误消息如前所述,解决方案是像其他行一样重写它:
php my/php/script.php >> logfile 2>&1