crontabが単語を見つけることができません

crontabが単語を見つけることができません
 sid="GR1"

   if sapcontrol -prot PIPE -nr $sid -prot PIPE -function GetSystemInstanceList | grep 'GRAY' >> $LOGFILE
    then
       echo "STATE: SAP system is offline. (sapcontrol)" >> $LOGFILE
       echo "STATE: SAP system is offline. (sapcontrol)"
    else
       echo "ERROR: SAP system is still online. (SAP system has to be online)" >> $LOGFILE
       echo "ERROR: SAP system is still online. Check the logs. (sapcontrol)"
       exit 1 
    fi

このステータススクリプトは手動でうまく機能しますが、crontabで実行すると機能しません。 「GRAY」が見つかりませんでしたがグレーです。 SAP ログが生成され、スクリプトが実行されますが、SAP チェックのスクリプト部分で停止します。

答え1

デフォルト以外のRHELパッケージを使用すると、この問題が発生します。 Cronの実行環境は、前景で実行する環境と異なる場合があります。

コマンドのフルパスを提供する必要があるかもしれません。

sapcontrolパスを見つけるには、次のコマンドを使用します。

 whereis sapcontrol 

/bin/sapcontrol または /usr/local/bin/sapcontrol です。

スクリプトから取得したフルパスを更新して試してください。

関連情報