用于检查sybase iq状态的shell脚本

时间:2014-02-19 09:53:13

标签: linux shell unix sybase

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

提前多多感谢

1 个答案:

答案 0 :(得分:1)

脚本非常简单

首先,脚本通过isql登录到服务器,将输出重定向到日志文件。如果它能够连接,它会在感叹号之间发出所有命令,在这种情况下是exit

接下来,if语句检查上一个命令运行$?的错误状态。 0表示没有错误,其他任何表示错误。因此,如果错误不是0,则创建一条消息,然后将该消息与日志文件一起发送给某人。

您必须在脚本中的某处设置$USERNAME, $PASSWORD, $SQL_SERVER, $LOG_FILE, $HOST and $SUPPORT的值。

如果您不熟悉shell脚本,我建议您阅读一下。它很容易进入,但它们对于管理* nix系统非常有用。