import datetime

import paramiko

import time

import os

class ScanError(object):

def __init__(self):

self._ssh = paramiko.SSHClient()

self.last_error_log = None

self._init()

def _init(self):

os.chdir("data") # 打算将报错信息保存到data目录下

self._ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

self._ssh.connect("192.168.1.10", username="root", password="XXXXXX")

error_log = self.get_error_log(500)

self.last_error_log = error_log

# 检测最近三天有没有报错信息

today = datetime.date.today()

yesterday = today - datetime.timedelta(days=1)

the_day_before_yesterday = today - datetime.timedelta(days=2)

error_log_str = " ".join(error_log)

if error_log_str.find(str(today)) > -1 or error_log_str.find(str(yesterday)) > -1 or error_log_str.find(str(the_day_before_yesterday)) > -1:

self.save_error_log("error.txt", error_log)

print("内网最近三天有错误信息,请查看")

os.popen("error.txt")

def get_error_log(self, num=200):

cmd = "cd /data/www/sg/sg_dev/socket/log&&tail -n {} sg_error.log".format(num)

stdin, stdout, stderr = self._ssh.exec_command(cmd)

error_log = [i.decode("utf-8") for i in stdout.read().splitlines() if i]

return error_log

@staticmethod

def save_error_log(file_name, log: list):

with open(file_name, "w", encoding="utf-8") as f:

f.write(" ".join(log))

def run_forever(self, interval=30, show_error=True):

"""运行检测工具

:param interval: 检测间隔

:param show_error: 是否检测到报错就自动弹出显示

:return:

"""

while 1:

time.sleep(interval)

error_log = self.get_error_log()

if error_log != self.last_error_log and " ".join(set(error_log) - set(self.last_error_log)).find("ERROR") > -1:

self.last_error_log = error_log

file_name = time.strftime("%Y-%m-%d-%H-%M-%S.txt", time.localtime(time.time()))

print("{} 检测到内网有新的错误信息".format(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))))

self.save_error_log(file_name, error_log)

if show_error:

os.popen(file_name)

if __name__ == "__main__":

ScanError().run_forever()

python编写测试小工具-Python与游戏测试(小工具篇)相关推荐

  1. python编写代码_用 Python 编写干净、可测试、高质量的代码

    用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...

  2. 随想录(python编写的计算器和贪吃蛇游戏)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] python除了用来开发server.web之外,一般还可以用来开发客户端,特别是用来做一些de ...

  3. 使用Python编写一个聪明的尼姆游戏

    关于尼姆游戏的介绍请参考上一篇文章:一个傻傻的尼姆游戏及其Python实现,本文使用Python实现一个聪明的尼姆游戏. 在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是2的幂次方减1--也就是 ...

  4. python尼姆游戏_使用Python编写一个聪明的尼姆游戏

    关于尼姆游戏的介绍请参考上一篇文章:一个傻傻的尼姆游戏及其Python实现,本文使用Python实现一个聪明的尼姆游戏. 在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是2的幂次方减1--也就是 ...

  5. python编写安卓脚本,用python+uiautomator写android测试脚本环境的搭建

    针对的系统环境 win7,64 python安装和配置 1.从python官方网站下载对应系统的安装包(得到一个.msi文件) 2.运行.msi文件,选择安装路径,安装python 3.完成以后将上面 ...

  6. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

  7. 怎么用python编写心形图案,python编程爱心形状turtle

    如何利用python画一个爱心 1 from turtle import * 2 def curvemove(): #这个函数是为了绘制爱心上方的曲线 3 for i in range(200): 4 ...

  8. python编写word_如何使用Python来编辑word

    今天老王在使用Python编辑word文件的时候发现了很多小问题,今天就和大家分享下,既然分享都分享了就从最基本的开始讲吧. 要想使用Python编辑word我们一般使用Python-docx库来进行 ...

  9. python编写poc_分享使用python编写poc,exp的实例教程

    在很久很久以,我有一个梦想 但是,后来我发现我的梦想渐渐没有了 于是,昨天我思考了一晚上 觉得我应该有个梦想的! 好了,回到正题.正所谓明人不装暗逼,今天我家开通了公网ip我开森啊,很开森的那种! 额 ...

  10. 《羊了个羊》测试工程师通关解密到游戏测试常见Bug汇总

    前言 几乎是一夜之间,微信小游戏<羊了个羊>火出圈了.​两天以来上了不下五次热搜,其话题总览量已经高达17亿,讨论次数也超过了15万次. 全办公室的都在找第二关的攻略,本来我以为这是00后 ...

最新文章

  1. 三态门有一个信号控制端en_W25Q32JVSSIQ|哪些PCB设计会影响信号质量?
  2. VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示
  3. 使用Maven Assembly plugin将依赖打包进jar
  4. 全方面了解和学习PHP框架
  5. visudo精确用户赋权(sudo)
  6. 《MySQL——关于grant赋权以及flush privileges》
  7. xenserver 安装新硬盘_给Xenserver添加新硬盘
  8. mysql事务嵌套 php_使用以下代码,MySQL中的PHP“嵌套”事务是否...
  9. python流程控制框架_Python基础(相关历史、交互、简单流程控制)
  10. 今夏发布的Terraform 0.12将提供for循环和第一类表达式
  11. 饭圈出征?《流浪地球》影迷给豆瓣App打一星:来啊互相伤害
  12. C++之指针探究(十二):指针、下标、数组及其作函数参数
  13. JY游戏开发,案例之 《下到一百层》,欢迎大家品赏。
  14. 海外硕士苏明哲回国后哀叹:我美本英硕,找不到工作很难受
  15. 基础软件“好用”指南:必须跨越这两道鸿沟!
  16. 【自动化测试selenium】
  17. Excel VBA之类模块 实例
  18. Me-tetrazine-Disulfo-Cyanine5,甲基四嗪-磺酸基菁染料Cy5,蓝色固体
  19. 发电运行技术类毕业论文文献都有哪些?
  20. 蘑菇街财报:曾经电商第四极的直播末路

热门文章

  1. PyTorch cat
  2. keras lastm循环神经网络训练验证测试
  3. python 判断debug
  4. ubuntu 安装OpenBLAS
  5. 怎么修改云服务器项目路径,云服务器tomcat的项目路径怎么设置
  6. linux文泉驿字体调用,使用文泉驿点阵字体解决Linux中文化问题
  7. 你还不知道mysql中空值和null值的区别吗?
  8. win10启动telnet
  9. c语言常用绘图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  10. git File name too long