利用python為運維人員寫乙個監控指令碼

2022-10-04 20:09:15 字數 2585 閱讀 5836

前言:

一直想寫乙個監控方面的指令碼,然後想到了運維這方面的,後來就寫了個指令碼,下面話不多說了,來一起看看詳細的介紹吧。

準備:程式設計客棧

psutil模組(基本使用方法可以參考這篇文章:

正文: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|[1-9]?\d)\.(25[0-5]|2[0-4]\d程式設計客棧|[0-1]\d|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d|[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為運維人員寫乙個監控指令碼

本文位址: /jiaoben/python/223680.html

Python自動化運維(一)

1.系統效能資訊模組psutil cpu資訊psutil.cpu times 方法獲取cpu的完整時間資訊 psutil.cpu times percent 方法獲取cpu的完整百分比資訊 psutil.cpu count 獲取cpu數量 psutil.cpu percent 獲取cpu百分比資訊 ...

IT運維人員如何度過乙個輕鬆的假日

我們即將迎來乙個小長假,對於忙碌了大半年的it運維管理人員的來說,既期待又擔心 擔心假日會不會因為it系統故障被打擾或中斷?事實上我們的it管理人員很清楚,有些問題一旦出現,可能只有我們自己能解決,普通it值班人員很難獨自排除故障,因為如果我們不去現場梳理,很難清晰了解it系統架構和裝置的使用現狀,...

Python自動化運維學習(一)

我們要使用連線物件獲得乙個cursor物件,接下來,我們會使用cursor提供的方法來進行工作.這些方法包括兩大類 1.執行命令,2.接收返回值 cursor用來執行命令的方法 callproc self,procname,args 用來執行儲存過程,接收的引數為儲存過程名和引數列表,返回值為受影響...