cron:提供完整路径时找不到

cron:提供完整路径时找不到

这可能看起来只是另一个基本的 cron 问题,但我无法弄清楚这个问题:

@hourly "/usr/bin/php /usr/local/bin/notify.sh"

我将一堆东西从一台服务器迁移到另一台服务器,经过一些工作后,大多数东西都能顺利运行,现在我正在扑灭大火。

当以下 cron 作业应该运行时,我每小时都会收到这封电子邮件:

/bin/sh: 1: /usr/bin/php /usr/local/bin/notify.sh: not found

通常,未找到是由 PATH 不存在引起的(cron 作业的问题),但我提供了完整路径对于 PHP 和脚本。该脚本以 root 身份运行,并且我可以交互地运行该脚本。

该脚本有755权限,只是为了安全起见(任何人都可以读取或执行),所以权限不是问题。

我可以手动运行脚本及其调用的脚本,所以我不知道这个“未找到”来自哪里。

除了运行的内容之外,cron 日志中没有任何可疑的内容。

这在旧服务器上运行正常。

这里是否可能存在其他因素,或者我如何尝试追踪此问题的原因?

答案1

入口

@hourly "/usr/bin/php /usr/local/bin/notify.sh"

作为单个参数传递/usr/bin/php /usr/local/bin/notify.sh给。/bin/sh -c这就是错误消息的原因

/bin/sh: 1: /usr/bin/php /usr/local/bin/notify.sh: not found

而不是其中任何一个

/bin/sh: 1: /usr/bin/php: not found

Could not open input file: /usr/local/bin/notify.sh

要单独传递程序/usr/bin/php及其文件名参数/usr/local/bin/notify.sh,请删除引号:

@hourly /usr/bin/php /usr/local/bin/notify.sh

相关内容