Cron

cron:提供完整路徑時未找到

  • June 24, 2021

這似乎只是另一個基本的 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 日誌中沒有任何可疑之處,除了這個。

這在舊伺服器上正常工作。

這裡是否可能有其他一些因素在起作用,或者我如何嘗試追踪這個問題的原因?

入口

@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

引用自:https://unix.stackexchange.com/questions/655563