目录
- 一, 安装psutil 包
- 二,找到操作系统中所有的服务的name和pid
- 三,找到需要监控但没有启动的服务
- 四,监控服务,如果没有开启则自动开启,[并发邮件通知工作人员]
一, 安装psutil 包1.1、安装压缩包:以root身份登陆CentOS依次 执行以下命令:
wget https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz如果wget 下不下来,则直接在浏览器中复制 粘贴链接https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz 下载下来,用ftp传输工具传输到linux上,然后再进行下面的操作
1.2 解压:
tar zxvf psutil-2.1.3.tar.gz1.3 进入解压完的目录:
cd psutil-2.1.3/1.4 启动安装:
python3 setup.py install1.5 验证: 在命令窗口输入 python3,然后 输入 :
import psutil 不报错,则证明安装 成功
接着输入:
res = psutil.process_iter()for var in res:? print(var)则会显示一堆信息
二,找到操作系统中所有的服务的name和pid
import psutilproc_dict = {}#ID:进程名proc_name = set()#关于进程的集合,集合去重for p in psutil.process_iter():proc_dict[p.pid] = p.name()proc_name.add(p.name())print(proc_dict)print('\n\n--------------------------\n')print(proc_name)
三,找到需要监控但没有启动的服务proc_stop = monitor_name - proc_name即:需要监控的服务name 减去 操作系统中所有服务的name
四,监控服务,如果没有开启则自动开启,[并发邮件通知工作人员] 1.使用os.system(命令)启用 服务 。
完整代码如下:
import psutilimport os#如果需要发邮件给通知管理人员可能需要使用 request 和 json#import request#import jsonimport timetime_now = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())#要监控的服务monitor_name = {'nginx'}#启动命令monitor_map = {'nginx':'service nginx start'}while True:#操作系统中所有进程的字典proc_dict = {}#操作系统中所有的进程名集合proc_name = set()#psutil.process_iter()会返回操作系统下所有进程名及进程IDfor p in psutil.process_iter(): proc_dict[p.pid] = p.name() proc_name.add(p.name())print(proc_dict)print('\n\n--------------------------\n')print(proc_name)# monitor_name - proc_name == died process name#提取到那个监控进程没有启动proc_stop = monitor_name - proc_nameprint(proc_stop)if proc_stop: for p in proc_stop:p_status = '停止'p_name = pdata =https://tazarkount.com/read/{p_status,p_name,time_now}headers = {'Content-Type':'application/json;charset=utf-8'}#send_data = https://tazarkount.com/read/json.dumps(data).encode('utf-8')#发邮件给管理人员#request.post(url=url,data=https://tazarkount.com/read/send_data,headers=headers)os.system(monitor_map[p])proc_name = set()for p2 in psutil.process_iter():proc_name.add(p2.name())if p in proc_name:print("重启成功")else:print("重启失败") time.sleep(2000)运行之后的效果:

文章插图
到此这篇关于linux服务监控及运维的文章就介绍到这了,更多相关linux服务内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
