これは別の基本的なクローン問題のように見えるかもしれませんが、これを理解することはできません:
@hourly "/usr/bin/php /usr/local/bin/notify.sh"
いくつかの項目をあるサーバーから別のサーバーに移動し、いくつかの作業を終えた後、ほとんどがスムーズに実行され、現在は消灯しています。
次のクローンジョブが実行されると、毎時間このメールが届きます。
/bin/sh: 1: /usr/bin/php /usr/local/bin/notify.sh: not found
通常、見つかりませんPATHが存在しないために発生しましたが(クローンジョブに関する問題)フルパス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