首页 > 编程语言 >Python实现监控网络设备状况并发送邮件

Python实现监控网络设备状况并发送邮件

时间:2022-11-01 00:34:52浏览次数:43  
标签:qq title Python ssh 邮箱 mail 网络设备 com 邮件

import paramiko
import datetime 
import time
from email.mime.text import MIMEText
import smtplib

#定义发送邮箱函数

def send_email(title):
   title=title
   sender='[email protected]'  #发送者邮箱
   receiver='[email protected]' #接收者邮箱

   mail=MIMEText(title,'plain','utf-8') 
   mail['Subject']=title
   mail['From']=sender    #邮箱部分信息
   mail['To']=receiver
   print(mail.as_string())

   server=smtplib.SMTP()
   server.connect('smtp.qq.com',465)
   server.login('[email protected]','邮箱授权码')
   server.sendmail('[email protected]','[email protected]',mail.as_string()) #邮箱授权发送
   server.quit()
   print('email had been sent!!!')
   return True

 #连接登录网络设备
ssh_client=paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname='192.168.99.10',username='python',password='123456') 
print('Sucessfully conneted to ','192.168.99.10')

 #执行查看计算资源命令
cmd=ssh_client.invoke_shell()
cmd.send('dis cpu-usage\n') 
time.sleep(2)

 #对返回信息解码提取

result=cmd.recv(66666)
result=result.decode('ascii')
items=result.splitlines()  

 #根据与阈值比对判断是否资源利用率过高
for item in items:
    item=item.strip()
    if item.startswith('CPU utilization'):
        
        data=item.split(':')[3]   
       
        percent=data[-2].strip()
       
        if int(percent)==1: 
            warnings='SW1 overloaded!!!'  
            print(warnings)
            send_email(warnings) #如果过高调用发邮件函数
        else:
             print('the SW1 is ok') #否则就显示正常
   
ssh_client.close()

标签:qq,title,Python,ssh,邮箱,mail,网络设备,com,邮件
From: https://www.cnblogs.com/tang-learning/p/16846411.html

相关文章

  • Python实现批量网络设备备份
    importparamikoimportdatetimeimporttimef=open('./hostnames.txt','r')#准备主机文件,一台主机占一行hostnames=f.readlines()forhostnameinhostnames:......
  • python函数
    什么是函数?函数相当于具备某一功能的工具函数使用原则:先定义,后调用为什么要使用函数?组织结构不清晰,可读性差代码冗余可维护性,扩展性差函数使用函数定义#......
  • Python 基础
    目录基础语法变量标识符命名规范注释单行注释多行注释import引入模块的方法运算法算术运算符成员运算符条件控制if语句matchcase语句基础语法变量标识符命名规范标......
  • Python实现批量登录网络设备
    importparamikoimportdatetimeimporttimef=open('./hostnames.txt','r')#准备好主机文件,一台主机占一行hostnames=f.readlines()#hostnames=['1.1.1.1','2.2.......
  • npm install报奇怪的python错误
    一、问题描述从git上面拉取项目,准备在本地运行,在使用 npminstall 安装依赖的时候,出现了奇怪的python错误。但是类似的项目能够正常的安装依赖并运行二、解决方法如......
  • Python开发 之 两种爬虫的方式 正则表达式、XPath
    文章目录​​1、简介​​​​2、简单爬取基本信息——效果图​​​​3、先将一下利用正则的方式​​​​3.1简单理解​​​​3.2源码​​​​4、XPath​​​​4.1简单介......
  • 学习python-Day82
    今日学习内容一、vue项目目录介绍myfirstvue 项目名字 -node_modules 文件夹,内部有很多当前依赖的模块,可以删除,但是想恢复就需要敲:npminstall-publice 文......
  • [python] 合并文件 终端命令行 cmd版
    importgetoptimportosimportsysdefshow_help():print("-h查看帮助")print("-s<path>文件路径1例:E:\\folk.bin")......
  • [python] bin转dfu 脚本 RSA2048 签名 解密 公钥 私钥
    /lib/importhashlibimportosimportsysimporttimefromdatetimeimportdatetimeimportrsaclassmy_sign():pubkey=""privkey=""def__init__(self,pa......
  • [python][上位机][tool] 单片机多功能上位机 参数设置 DFU升级 曲线图显示
    一、上位机界面图二、DFU生成工具界面图三、使用说明DFU升级功能必须使用配套的DFU生成工具。曲线图协议:GH^DATA=<线编号><数据>\r\n......