监控数据流基准变化python脚本
来源:互联网 发布:淘宝网欧式灯具 编辑:程序博客网 时间:2024/05/21 18:48
#!/usr/bin/env python
# encoding: utf-8
"""
delay base case
"""
from datetime import datetime
import commands
from edulib.util import case_util
from edulib import config
import re
import time
class Delay(case_util.NormalCase):
"""
数据流延迟
"""
BASE_FILE = '/home/work/data_service/data/base/vse/0.bid.info.n'
# 时间间隔阈值
BASE_SECONDS = 25 * 3600
def get_file_time(self, host, file):
"""
get file last modify time
"""
modify_time = ""
cmd = "lftp {} -e \"cls -l {} && exit\"".format(host, file)
output = commands.getoutput(cmd)
if not re.search(".*\s+work\s+work.*", output):
return None
output = output.split()
cur_year = time.strftime('%Y', time.localtime(time.time()))
modify_time = cur_year + "-" + output[5] + "-" + output[6] + " " + output[7]
return modify_time
def process_host(self, host, file, threshold):
"""
处理一台机器
@param host 要处理的机器
@param files 要监控文件
@param threshold 阈值
"""
last_time = self.get_file_time(host, file)
if last_time is None:
return
last_time = time.mktime(time.strptime(last_time, "%Y-%b-%d %H:%M"))
now = time.time()
delta = abs(now - last_time)
if delta > threshold:
raise Exception('delay {}s > {}s'.format(delta, threshold))
def process_group(self, group):
"""
process in group
"""
ret = {}
for k, v in group.items():
if v.get('type') == 'online':
hosts = v['list']
for host in hosts:
try:
# base
self.process_host(host=host, file=self.BASE_FILE,
threshold=self.BASE_SECONDS)
except Exception as e:
ret[host] = str(e)
if len(ret) > 0:
raise Exception(ret)
def test_bs_course(self):
"""
bs_course delay
"""
group = config.Config.TOPO['sys']['search']['service']['bs_course']['unit']['group']
self.process_group(group)
def test_bs_service(self):
"""
bs_service delay
"""
group = config.Config.TOPO['sys']['search']['service']['bs_service']['unit']['group']
self.process_group(group)
def test_as(self):
"""
as delay
"""
group = config.Config.TOPO['sys']['search']['service']['as']['unit']['group']
self.process_group(group)
def test_cs_offline_course(self):
"""
cs_offline_course delay
"""
group = config.Config.TOPO['sys']['search']['service']['cs_offline_course']['unit']['group']
self.process_group(group)
def test_cs_offline_service(self):
"""
cs_offline_service delay
"""
group = \
config.Config.TOPO['sys']['search']['service']['cs_offline_service']['unit']['group']
self.process_group(group)
# encoding: utf-8
"""
delay base case
"""
from datetime import datetime
import commands
from edulib.util import case_util
from edulib import config
import re
import time
class Delay(case_util.NormalCase):
"""
数据流延迟
"""
BASE_FILE = '/home/work/data_service/data/base/vse/0.bid.info.n'
# 时间间隔阈值
BASE_SECONDS = 25 * 3600
def get_file_time(self, host, file):
"""
get file last modify time
"""
modify_time = ""
cmd = "lftp {} -e \"cls -l {} && exit\"".format(host, file)
output = commands.getoutput(cmd)
if not re.search(".*\s+work\s+work.*", output):
return None
output = output.split()
cur_year = time.strftime('%Y', time.localtime(time.time()))
modify_time = cur_year + "-" + output[5] + "-" + output[6] + " " + output[7]
return modify_time
def process_host(self, host, file, threshold):
"""
处理一台机器
@param host 要处理的机器
@param files 要监控文件
@param threshold 阈值
"""
last_time = self.get_file_time(host, file)
if last_time is None:
return
last_time = time.mktime(time.strptime(last_time, "%Y-%b-%d %H:%M"))
now = time.time()
delta = abs(now - last_time)
if delta > threshold:
raise Exception('delay {}s > {}s'.format(delta, threshold))
def process_group(self, group):
"""
process in group
"""
ret = {}
for k, v in group.items():
if v.get('type') == 'online':
hosts = v['list']
for host in hosts:
try:
# base
self.process_host(host=host, file=self.BASE_FILE,
threshold=self.BASE_SECONDS)
except Exception as e:
ret[host] = str(e)
if len(ret) > 0:
raise Exception(ret)
def test_bs_course(self):
"""
bs_course delay
"""
group = config.Config.TOPO['sys']['search']['service']['bs_course']['unit']['group']
self.process_group(group)
def test_bs_service(self):
"""
bs_service delay
"""
group = config.Config.TOPO['sys']['search']['service']['bs_service']['unit']['group']
self.process_group(group)
def test_as(self):
"""
as delay
"""
group = config.Config.TOPO['sys']['search']['service']['as']['unit']['group']
self.process_group(group)
def test_cs_offline_course(self):
"""
cs_offline_course delay
"""
group = config.Config.TOPO['sys']['search']['service']['cs_offline_course']['unit']['group']
self.process_group(group)
def test_cs_offline_service(self):
"""
cs_offline_service delay
"""
group = \
config.Config.TOPO['sys']['search']['service']['cs_offline_service']['unit']['group']
self.process_group(group)
0 0
- 监控数据流基准变化python脚本
- linux 监控内存变化脚本
- python流量监控脚本
- Python监控Windows下的文件变化
- python中文件变化监控-watchdog
- Python磁盘监控、日志分析监控脚本
- Python 监控 Data Guard 脚本
- python监控脚本的编写
- python脚本监控nginx服务
- zabbix监控nginx(python脚本)
- Python脚本监控CentOS磁盘空间
- 【Python运维脚本】Python监控磁盘
- python监控文件或目录变化-实例,用paramiko远程监控文件夹变化
- python nagios简单监控进程数脚本
- python写个进程监控的脚本
- 使用python脚本来监控进程
- python监控脚本,监控CPU,磁盘报警时发送邮件
- redis线上环境监控脚本(python脚本)
- iOS-SQLite3和FMDB使用
- 计算输入的字符的字节数
- 点击子元素的时候阻止父元素也被点击
- 第一个Android App 半成品------栗动
- STL容器list&vector间的复制
- 监控数据流基准变化python脚本
- String,StringBuffer,StringBuilder的一些面试题
- win32 ios android 获取系统时间
- Log4J日志配置详解
- 改板后,软件gpio修改
- quick3.3使用tolua工具导出C++到lua所遇问题记录
- Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法
- List of Algorithms
- js获得桌面size