利用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使用chardet判断字符编码
May 09 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
Python3学习urllib的使用方法示例
Nov 29 Python
python使用生成器实现可迭代对象
Mar 20 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
Jul 25 Python
python实现弹跳小球
May 13 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
Python如何将装饰器定义为类
Jul 30 Python
Python datetime模块的使用示例
Feb 02 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 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 5.0对象模型深度探索之绑定
2006/09/05 PHP
在普通HTTP上安全地传输密码
2007/07/21 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
php下Memcached入门实例解析
2015/01/05 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
Node.js中出现未捕获异常的处理方法
2020/06/29 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
python自动生成model文件过程详解
2019/11/02 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
Python3.9新特性详解
2020/10/10 Python
学校消防演习方案
2014/02/19 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP
Python读取和写入Excel数据
2022/04/20 Python