#!/usr/bin/env python
#-*-coding:utf8-*-
#实时监控snapshot 状态,如果网络 出现异常,直接重置snapshot 状态~
“”
创建snapshot 盘
qemu-img create -b root.img -f qcow2 root.qcow2
snapshot 创建
virtsh snapshot-create-as vm200001 vm200012
snapshot 重置
virsh snapshot-revert vm200001 vm2000012
”“
import socket
import os,sys,time
import shutil
class Revert(object):
def __init__ (self):
pass
def log(self,info):
files = open('/var/log/listen.log','a')
try:
files.write(info)
except IOError:
files.close()
files.close()
size = os.path.getsize('/var/log/listen.log') / 1024
if size >= 1024:
shutil.move('/var/log/listen.log','/dev/null')
def mysock(self):
while True:
asock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
asock.settimeout(10)
try:
asock.connect(('192.168.10.130',22))
asock.close()
time.sleep(3)
self.log('%s:--: connect done \n'%(time.ctime()))
except socket.timeout,e:
self.log('%s:--: connect false:%s \n'%(time.ctime(),e))
os.system('virsh snapshot-revert vm200001 vm2000012')
if __name__ == "__main__":
pid = os.fork()
if pid > 0 :
sys.exit(0)
os.setsid()
os.chdir('/')
sys.stdin = open("/dev/null","r+")
sys.stdout = os.dup(sys.stdin.fileno())
sys.stderr = os.dup(sys.stdin.fileno())
reset = Revert()
reset.mysock()
本文转自 swq499809608 51CTO博客,原文链接:http://blog.51cto.com/swq499809608/855237
相关文章
- 10-25python-用底部编辑线,状态栏和滚动历史记录实现“控制台外壳”的最佳方法?
- 10-25Python语言的有限状态机实现样例
- 10-25[心跳] 使用心跳机制实现CS架构下多客户端的在线状态实时更新以及掉线自动重连
- 10-25python实现有限状态机
- 10-25fabric canvas 实现信号机路口渠画图的规划和实时状态变化
- 10-25Python脚本实现网卡流量监控
- 10-25.Net Core 2.0+ InfluxDB+Grafana+App Metrics 实现跨平台的实时性能监控
- 10-254g可视化终端有什么用?输电线路状态实时监控装置
- 10-25变废为宝:使用废旧手机实现实时监控方案
- 10-25[Python Study Notes]实现对键盘控制与监控