我正在编写一个脚本来检查sybase是否在我的服务器上运行。如果它没有运行,我想启动服务。如果它在运行,我想停止sybase iq。
请帮我做同样的事。
我写的逻辑是:
if(sybaseiq = active)
then
stop_iq
else
start_iq ".cfg" ".db"
下面是我在网上找到的代码,但我不明白他们在那里做什么。请给我解释一下。
isql -U${USERNAME} -P${PASSWORD} -S${SQL_SERVER} -w1000 << ! > ${LOG_FILE}
exit
!
if [[ $? != 0 ]]
then
msg="`date` ${SQL_SERVER} problem. ${SQL_SERVER} on ${HOST} is down or cannot be accessed"
cat ${LOG_FILE}|/usr/bin/mailx -s "${msg}" ${SUPPORT}
}
exit 1
fi
提前多谢了
最佳答案
剧本相当直截了当
首先,脚本通过isql登录到服务器,将输出重定向到日志文件。如果它能够连接,它将发出感叹号之间的所有命令,在本例中是exit
。
接下来,if语句检查最后一个命令run$?
的错误状态。0表示没有错误,其他任何表示错误。因此,如果错误不是0,则创建一条消息,然后将该消息连同日志文件一起发送给某人。
您必须在脚本的某个地方设置$USERNAME, $PASSWORD, $SQL_SERVER, $LOG_FILE, $HOST and $SUPPORT
的值。
如果您不熟悉shell脚本,我建议您阅读一点。很容易进入,但它们在管理*nix系统方面非常强大。
关于linux - Shell脚本检查sybase iq状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21876823/