import requestsimport osimport timeimport jsonimport psutilimport socketwhile True: # 获取本机计算机名称 hostname = socket.gethostname() # 获取本机ip ip = socket.gethostbyname(hostname) time_now = time.strftime('%Y-%m-%d %H:%M:%S') url = 'https://oapi.dingtalk.com/robot/send?access_token=91a38bc1a6afc21b23bf450a058baa9baa6d3beb7fcad1b431db18c97c258ce4' def process(): proc_dict = {} proc_name = set() # 要监控服务集合 monitor_name = {'httpd'} # 要监控的服务 server={'httpd':'systemctl start httpd'} for p in psutil.process_iter(attrs=['pid','name']): # psutil.process_iter:返回操作系统洗的全部进程名称和ID proc_dict[p.info['pid']]=p.info['name'] proc_name.add(p.info['name']) proc_stop = monitor_name - proc_name '''>> > a = {'1'} >> > b = {'2', '3', '4'} >> > a - b {'1'} 要监控服务-系统服务=死掉的''' if proc_stop: for p1 in proc_stop: p_status = '停止' data = {"msgtype": "text","text": {"content": "主机ip:%s\n服务:%s\n状态:%s\n%s" % (ip,p1, p_status,time_now)},"at": {"atMobiles": [],"isAtAll": False}} headers = {"Content-Type": "application/json", "Chartset": "utf-8"} # 把json转变为字符串格式数据 send_data = json.dumps(data) # 这个是发送post请求,请求钉钉接口 response = requests.post(url=url, headers=headers, data=send_data) # 讲求成功后返回的数据 content = response.content.decode() os.system(server[p1]) proc_a = set() for i in psutil.process_iter(attrs=['pid','name']): proc_a.add(i.info['name']) if p1 in proc_a: p_status = '启动' data = {"msgtype": "text", "text": {"content": "主机ip:%s\n服务:%s\n状态:%s\n%s" % (ip, p1, p_status, time_now)},"at": {"atMobiles": [], "isAtAll": False}} send_data = json.dumps(data) response = requests.post(url=url, headers=headers, data=send_data) content = response.content.decode() else: p_status = '停止' data = { # 此消息的类型为固定的text "msgtype": "text", "text": { # 消息内容 "content": "主机ip:%s\n服务:%s\n状态:%s\n%s" % (ip, p1, p_status, time_now)}, "at": { # 被@人手机号 "atMobiles": [], "isAtAll": False}} send_data = json.dumps(data) response = requests.post(url=url, headers=headers, data=send_data) content = response.content.decode() time.sleep(5) process()
来源:博客园
作者:
链接:https://www.cnblogs.com/ZZYMiss/p/11502584.html