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
更新脚本中获取的完整路径并尝试一下。