利用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 socket 超时设置 errno 10054
Jul 01 Python
python获取远程图片大小和尺寸的方法
Mar 26 Python
python输出当前目录下index.html文件路径的方法
Apr 28 Python
Python实现求数列和的方法示例
Jan 12 Python
Python中单线程、多线程和多进程的效率对比实验实例
May 14 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
django多个APP的urls设置方法(views重复问题解决)
Jul 19 Python
Django接收照片储存文件的实例代码
Mar 07 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
python中常见错误及解决方法
Jun 21 Python
python反编译教程之2048小游戏实例
Mar 03 Python
解决pytorch读取自制数据集出现过的问题
May 31 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基础学习笔记
2007/03/18 PHP
php.ini中date.timezone设置分析
2011/07/29 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
Javascript 作用域使用说明
2009/08/13 Javascript
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
解决VUEX的mapState/...mapState等取值问题
2020/07/24 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
Python 中的lambda函数介绍
2018/10/10 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
基于python实现地址和经纬度转换
2020/05/19 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
欧克利英国官网:Oakley英国
2019/08/24 全球购物
兼职业务员岗位职责
2014/01/01 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
法院授权委托书范文
2014/08/02 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
综合测评个人总结
2015/03/03 职场文书
大学生活感想
2015/08/10 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
深入理解redis中multi与pipeline
2021/06/02 Redis
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL