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 です。
スクリプトから取得したフルパスを更新して試してください。