python实现系统状态监测和故障转移实例方法

yipeiwu_com7年前Python基础

复制代码 代码如下:

#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模仿POST提交HTTP数据及使用Cookie值的方法

本文实例讲述了在Python中模仿POST HTTP数据及带Cookie提交数据的实现方法,分享给大家供大家参考。具体实现方法如下: 方法一 如果不使用Cookie, 发送HTTP PO...

django框架面向对象ORM模型继承用法实例分析

本文实例讲述了django框架面向对象ORM模型继承用法。分享给大家供大家参考,具体如下: Django ORM对模型继承的支持,将python面向对象的编程方法与数据库面向关系表的数据...

python实现拉普拉斯特征图降维示例

python实现拉普拉斯特征图降维示例

这种方法假设样本点在光滑的流形上,这一方法的计算数据的低维表达,局部近邻信息被最优的保存。以这种方式,可以得到一个能反映流形的几何结构的解。 步骤一:构建一个图G=(V,E),其中V={...

Python最基本的数据类型以及对元组的介绍

简单类型 内置到 Python 编程语言中的简单数据类型包括:     bool     int   &n...

一百多行python代码实现抢票助手

一. 代码使用Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互。 二. ...