示例#1
0
 def getDbStatus(self):
     ## 检查MySQL状态, 1 正常, 0 异常
     try:
         db1Status = chkPort(dbOneIp, db1Port)
         db2Status = chkPort(dbTwoIp, db2Port)
     except Exception, err:
         saveLog.error("getDbStatus() Error Occur : %s" % err)
示例#2
0
def pingLan():
    if lanIP == dbOneIp and lanIP != dbTwoIp:
        portOK = chkPort(dbTwoIp, int(3307))
        if not portOK:
            doPing(dbTwoIp, int(3307))
        else:
            if sDb.read(telIP, "lanAlarm") == "OFF":    ## 状态OK且开关为"OFF"时,报恢复
                sub = "DBTX LanIP is OK: %s" % ps1
                msg = "DateTime: %s\n 备库: %s, 网络与端口恢复正常." % (getTimeNow(), dbTwoIp)
                saveLog.info(msg)
                sendMail(sub, msg)
                sDb.update(telIP, "lanAlarm", "ON")
    elif lanIP != dbOneIp and lanIP == dbTwoIp:
        portOK = chkPort(dbOneIp, int(3306))
        if not portOK:
            doPing(dbOneIp, int(3306))
        else:
            if sDb.read(telIP, "lanAlarm") == "OFF":
                sub = "DBTX LanIP is OK: %s" % ps1
                msg = "DateTime: %s\n 备库: %s, 网络与端口恢复正常." % (getTimeNow(), dbTwoIp)
                saveLog.info(msg)
                sendMail(sub, msg)
                sDb.update(telIP, "lanAlarm", "ON")
    else:
        pass
示例#3
0
 def isSlaves(self):
     try:
         if chkPort(dbTwoIp, 3307):
             self.cursor2.execute("show slave status;")
             slaveStatus = self.cursor2.fetchone()
         else:
             slaveStatus = {'Slave_IO_Running': 'No', 'Slave_SQL_Running': 'No', 'Seconds_Behind_Master': '9999'}
     except Exception, err:
         print "getSlaveStatus() Error Occur :", str(err)
示例#4
0
 def isAlive(self):
     try:
         db1Status = chkPort(dbOneIp, 3306)
         db2Status = chkPort(dbTwoIp, 3307)
     except Exception, err:
         print "getDbStatus() Error Occur : %s" % err
示例#5
0
            cursor.execute(ySql)
            fbRes = cursor.fetchone()
##            fbUrl = cursor.fetchone()['public_url']
##            fbDomain, fbPort = fbUrl.split(":")

            crossSwStat, fixSwStat = self.sDb.read(self.srvFlag, "crossAlarm"), self.sDb.read(self.srvFlag, "isFixing")
            try:
                pkUrl, fbUrl = pkRes['public_url'], fbRes['public_url']
            except Exception, err:
                saveLog.warning("get Cross Domain error occured. %s" % str(err))
                crossStatus, pkDomain, fbDomain = 1, 'null', 'null'
##            if pkUrl and fbUrl:
            else:
                pkDomain, pkPort = pkUrl.split(":")
                fbDomain, fbPort = fbUrl.split(":")
                pkStatus = chkPort(pkDomain, pkPort)
                fbStatus = chkPort(fbDomain, fbPort)
                if not pkStatus or not fbStatus:
                    crossStatus = 1
                    try:
                        if fixSwStat == "OFF":         ## 如果维护标识为"OFF"
                            if crossSwStat == "ON":     ## 状态为"NO"且开关为"ON"时,报故障
                                sub = "DBTX CrossConnect Alarm: %s" % ps1
                                msg = "Datetime: %s\n%s 跨服: %s 至少有一个连接异常" % (getTimeNow(), self.srvFlag, str(",".join([pkDomain, fbDomain])))
                                #crsMuser = "******"
                                saveLog.warning(msg)
                                #sendMail(sub, msg, crsMuser)
                                self.sDb.update(self.srvFlag, "crossAlarm", "OFF")
                    except Exception, err:
                        saveLog.warning("Cross connection is 1,get switch status error occured. %s" % str(err))
                else: