Posted in Python onNovember 18, 2013
#coding: utf-8 import socket import select import time import os import threading def ser(): s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.bind(("",43244)) while 1: infds,outfds,errfds = select.select([s],[],[],5) if infds: sms = s.recv(1024) if sms=="alived": print "peer is alived" else: print "Can't hear peer!" os.system("./failover.sh") def clt(): while 1: sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.connect(('192.168.10.1', 43244)) sock.send("alived") time.sleep(2) if __name__=="__main__": ser=threading.Thread(target=ser) clt=threading.Thread(target=clt) ser.start() clt.start() ser.join() clt.join()
failover.sh
#!/bin/bash vip=8.8.8.8 vip_local=`ifconfig |grep -A 1 "eth0:0" |awk '/inet addr/{print $2}'|cut -d ":" -f2` if [ ! $vip_local ];then ifconfig eth0:0 $vip netmask 255.255.255.0 up;fi
python实现系统状态监测和故障转移实例方法
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@