我正在编写一个脚本来检查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/

10-15 15:40
查看更多