移动设备监控-发送钉钉通知
目的
每次测试要连接N台设备同时自动化,由于可能会出现中断情况,手动找起来太麻烦,尤其是假期的时候,出现特殊情况无法预知,特此增加了设备运行监控

说明
脚本主要是Python编写,移动设备50台,主控设备MacOS一台,设备管理使用Mysql

代码思路
使用mysql管理设备,主表存放设备的devicesID、设备编号、code
通过集线器将所有设备连接到主控机MacOS
批量执行设备运行自动化进程
通过运行的进程,找到进程的别名,例如:com.***sql这样
经实验运行完成和设备发生断电、以及程序异常的时候需要监控的进程会停止
导出设备的最近时间段的日志(太多了会很慢,导出一部分就好),截取需要的时间
使用正则进行拼接,例如:时间、设备ID、进程PID等
对时间进行差值计算,大于一定时间段,说明设备发生了异常,或者运行完成
把异常或完成的设备在数据库中进行标记,发生监控通知对应人员

监控脚本如下

 '''提取日志时间和pid'''
Url = '这里是钉钉的token'
HEADERS = {"Content-Type": "application/json ;charset=utf-8 "}
log_path = "数据源地址"
for logs in read_path(log_path):
with open(logs,'r',encoding='utf-8') as file:
file_content = file.readlines()
if len(file_content)!=0:
file_line_last = file_content[-1]
target = file_line_last[:60]
log_data = re.findall('\d{2}-\d{2} \d{1,2}:\d{1,2}:\d{1,2}',target) #正则提取日期
pid = re.findall('\s\s\d{1,4}\s\s',target) # 正则提取pid
log_datas = ['2022-'+(i) for i in log_data]
log_times = "".join(log_datas)
pids = [str(j)for j in pid]
pid_id = "".join(pids)
d1=datetime.datetime.strptime(log_times,'%Y-%m-%d %H:%M:%S')#日志时间
times = strftime("%Y-%m-%d %H:%M:%S", localtime())#当前时间
d2 = datetime.datetime.strptime(times, '%Y-%m-%d %H:%M:%S')
devices = re.findall('.*report/(.*?)-',logs)
time.sleep(0.5)
diff=(d2-d1).seconds
print(diff)
time.sleep(0.3)
if diff > 300:
for devid in devices:
sql = 'UPDATE dev_table SET code = 2 WHERE devices="%s"'%devid
db.updateDb(sql)
print(sql)
msg='💣💣💣💣💣💣💣💣️\n😈监控报警:时间差%s秒,完蛋了吧运行出错了吧🐛\n运行的设备pid:%s' \
'\ndevicesID:%s\n更新库中设备状态为异常,大哥快来处理👻\n💣💣💣💣💣💣💣💣️'%(diff,pid_id,devid)
String_textMsg = { "msgtype": "text",
"text": {
"content": msg
},
"at":{
"atMobiles":['+86-176*****666'],
#@指定人员
"isAtAll":False
}
}
String_textMsgs = json.dumps(String_textMsg)
res = requests.post(Url, data=String_textMsgs, headers=HEADERS)
print(res.text)
os.system('adb kill-server')#因为使用了多进程,会调起多个adb命令,这里对adb进行了一次性的关闭,每次跑完都会清除一次(subprocess.Popen,导致程序假死,可自行百度)

设备获取和日志导出

隐藏内容
本内容需权限查看
  • 普通用户: 4.99宝藏币
  • 月卡会员: 免费
  • 永久会员: 免费
已有13人解锁查看

原文链接:https://www.scs66.com

本站资源均源自网络,个人下载后如进行违法行为均与本站无关,请根据需求下载。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理,联系邮箱:409943746@qq.com。