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 日誌中沒有任何可疑之處,除了這個。
這在舊伺服器上正常工作。
這裡是否可能有其他一些因素在起作用,或者我如何嘗試追踪這個問題的原因?
入口
@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