利用python为运维人员写一个监控脚本


Posted in Python onMarch 25, 2018

前言:

一直想写一个监控方面的脚本,然后想到了运维这方面的,后来就写了个脚本,下面话不多说了,来一起看看详细的介绍吧。

准备:

psutil模块(基本使用方法可以参考这篇文章:https://3water.com/article/65044.htm)

正文:

import os
import time
import re
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import socket
import psutil
while True:
 def jianca():
 print('[+]Write a port to a file')
 querys=os.popen('netstat -an').read()
 wsd=open('netstat.txt','w')
 wsd.write(querys)
 wsd.close()
 jianca()
 
 def swsd():
 global usd,ow
 wsd=open('netstat.txt','r')
 swd=wsd.read()
 odf=re.findall('(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d):(3389)',swd)
 usd=odf[0]
 print('[+]Query the IP address of a remote connection')
 df=usd[0],usd[1],usd[1],usd[3]
 wdst=".".join(df)
 ow=wdst+":"+usd[4]
 print(usd[0],'.',usd[1],'.',usd[2],'.',usd[3]+":",usd[4])
 swsd()
 
 def ipdw():
 global wdf,ip,timsd
 s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
 dw=s.connect(('8.8.8.8',80))
 ip=s.getsockname()[0]
 print('[+]loacl IP:',ip)
 wdf=os.popen('tasklist').read()
 timsd=time.strftime('%Y-%m-%d',time.localtime(time.time()))
 ipdw()
 
 def yunwei():
 global cput,cp
 cput=psutil.cpu_times()
 cp=psutil.disk_io_counters()
 yunwei()
 
 def stm():
 serder="搜狐邮箱@sina.cn"
 revw="收件箱@qq.com"
 zhengwen='[+]Query the IP address of a remote connection''{}\n' \
  '[+]loacl IP:{}\n' \
  '[+]A program running in the background:{}\n' \
  '[+]The user / system / idle time of statistical CPU:{}\n' \
  '[+]Disk I/O usage{}\n' \
  '[+]Last send time:{}\n' .format(ow,ip,wdf,cput,cp,timsd)
 msg=MIMEText(zhengwen)
 msg['From']=Header('你的搜狐邮箱@sina.cn')
 msg['TO']=Header('收件箱@qq.com','utf-8')
 sub="实时监控"
 msg['subject']=Header(sub,'utf-8')
 try:
  smtp=smtplib.SMTP()
  smtp.connect('smtp.sina.cn',25)
  smtp.login('搜狐邮箱@sina.cn','登录密码')
  smtp.sendmail(serder,revw,msg.as_string())
  print('[+]发送出')
 except Exception as g:
  print('[-]发送失败,原因:',g)
 stm()
 
 time.sleep(3600)

实现原理:首先获取端口状态,然后写人一个txt用正则提取出想要的IP和端口。

然后获取正在后台运行的程序。在获取CPU和磁盘I/O的内存,然后通过邮箱发送‘

到指定收件箱。

运行截图:

利用python为运维人员写一个监控脚本

利用python为运维人员写一个监控脚本

利用python为运维人员写一个监控脚本

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
Python3基于sax解析xml操作示例
May 22 Python
pygame游戏之旅 添加游戏暂停功能
Nov 21 Python
对Python中画图时候的线类型详解
Jul 07 Python
python3 线性回归验证方法
Jul 09 Python
Python测试线程应用程序过程解析
Dec 31 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
python代码如何实现余弦相似性计算
Feb 09 Python
Python列表倒序输出及其效率详解
Mar 04 Python
pygame实现飞机大战
Mar 11 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
Sep 03 Python
python实现数据写入excel表格
Mar 25 #Python
使用requests库制作Python爬虫
Mar 25 #Python
利用Python代码实现数据可视化的5种方法详解
Mar 25 #Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
Mar 23 #Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 #Python
python微信公众号开发简单流程
Mar 23 #Python
python3如何将docx转换成pdf文件
Mar 23 #Python
You might like
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
Python读大数据txt
2016/03/28 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
Python实现通讯录功能
2018/02/22 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
python 调用Google翻译接口的方法
2020/12/09 Python
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
中国电视购物:快乐购
2017/02/04 全球购物
Farah官方网站:男士服装及配件
2019/11/01 全球购物
金融与证券专业求职信
2014/06/22 职场文书
最美孝心少年事迹材料
2014/08/15 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
2016银行求职自荐信
2016/01/28 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
golang中字符串MD5生成方式总结
2021/07/04 Golang