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)
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
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)
def isAlive(self): try: db1Status = chkPort(dbOneIp, 3306) db2Status = chkPort(dbTwoIp, 3307) except Exception, err: print "getDbStatus() Error Occur : %s" % err
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: