吃不够的圆儿宝

1. 启动脚本(startDRBD.py):os,sysimport threadingfrom time import ctime,sleepimport commands:#判断输入参数是 primary 还是 secondaryif len(sys.argv) != 2:print ‘参数个数错误!参数个数:3个’exit()if sys.argv[1] == ‘primary’:sys.argv[1] == ‘secondary’::print ‘参数错误!请输入参数:primary或secondary’exit(): #启动DRBD并自动输入yes(保证单节点启动)import pexpectpwd=”yes\r”#发送命令执行交互child=pexpect.spawn(‘service drbd start’)sleep(15)if IsStarted() != 1:child.expect (‘]:’)child.sendline(pwd)#child.interact() #关闭pexpect child.close(): #设置启动时的主备状态if bIsPrimary == 1:output = commands.getstatusoutput(‘drbdadm primary –force r0’)if output[0] == 2816:print ‘there is another primary node already!’output = commands.getstatusoutput(‘mount /dev/drbd1 /db’)if output[0] != 0::output = commands.getstatusoutput(‘drbdadm cstate r0’)if len(output[1])>90:if output[1][90:] == ‘Connected’::#是否发生脑裂output = commands.getstatusoutput(‘drbdadm cstate r0’)if len(output[1])>90:if output[1][90:] == ‘StandAlone’:print ‘Split-Brain!Repairing…’RepairSplitBrain()exit():#脑裂自动修复if(GetIsPrimary()==1):commands.getstatusoutput(‘drbdadm connect r0’)elif(GetIsPrimary()==2):commands.getstatusoutput(‘drbdadm secondary r0’)commands.getstatusoutput(‘drbdadm connect –discard-my-data r0’): :threading.Thread.__init__(self):IsSplitBrain():t = MyThread()sleep(1)t.start()if __name__ == “__main__”:num = GetIsPrimary()commands.getstatusoutput(‘service drbd stop’)StartAndSendYes()SetPrimOrSenc(num)BeginThread()2. 主备节点切换脚本 (setDRBD.py):sys,osimport commands: #判断输入参数是 primary 还是 secondaryif(len(sys.argv) != 2):print ‘参数个数错误!’exit()if sys.argv[1] == ‘primary’:sys.argv[1] == ‘secondary’::print ‘参数错误!请输入参数:primary或secondary’exit(): #设置主/备节点output = ‘0’if bIsPrimary == 1:output = commands.getstatusoutput(‘drbdadm primary r0’)if output[0] == 2816:print ‘there is another primary node already!’output = commands.getstatusoutput(‘mount /dev/drbd1 /db’)if output[0] != 0:bIsPrimary == 2:output = commands.getstatusoutput(‘umount /db’)if output[0] != 0:print ‘umount /db failed!’commands.getstatusoutput(‘drbdadm secondary r0’)if __name__ == ‘__main__’:index = IsPrimary()SetPrimOrSenc(index)

,快乐不是因为拥有的多而是计较的少

吃不够的圆儿宝

相关文章:

你感兴趣的文章:

标签云: