我正在编写一个脚本来检查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
提前多多感谢
答案 0 :(得分:1)
脚本非常简单
首先,脚本通过isql登录到服务器,将输出重定向到日志文件。如果它能够连接,它会在感叹号之间发出所有命令,在这种情况下是exit
。
接下来,if语句检查上一个命令运行$?
的错误状态。 0表示没有错误,其他任何表示错误。因此,如果错误不是0,则创建一条消息,然后将该消息与日志文件一起发送给某人。
您必须在脚本中的某处设置$USERNAME, $PASSWORD, $SQL_SERVER, $LOG_FILE, $HOST and $SUPPORT
的值。
如果您不熟悉shell脚本,我建议您阅读一下。它很容易进入,但它们对于管理* nix系统非常有用。