首页 > 系统相关 >Python 使用paramiko获取Linux远程端电脑挂载空间使用情况

Python 使用paramiko获取Linux远程端电脑挂载空间使用情况

时间:2022-08-30 13:13:10浏览次数:50  
标签:Python IP Ret User Linux Password Port paramiko

安装paramiko

pip install paramiko

代码演示

import json as JSON
import re
import paramiko
import suds

from suds.wsse import *class LinuxMntListen(): """Linux系统""" def getSpaceInfo(self, P_IP, P_Port, P_User, P_Password): """ 获取Linux挂载空间使用情况 :return: """ IP = P_IP Port = int(P_Port) User = P_User Password = P_Password # 初始化返回数据格式 Ret = {"code": "0", "msg": "OK", "data": []} try: # 创建SSHClient对象 SSHCli = paramiko.SSHClient() # 允许将信任的主机自动保存到“known_hosts”文件中,此方法必须放在connect方法的前面 # SSHCli.load_system_host_keys() SSHCli.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 开始连接 SSHCli.connect(IP, Port, User, Password, timeout=10) except Exception as e: Ret["code"] = "-1" Ret["msg"] = "目标服务器" + IP + "连接失败!" + str(e) return JSON.dumps(Ret, ensure_ascii=False) # 指定查看的挂载列表 # MntList = ['/','/stand','/var','/usr','/tmp','/opt','/home','/cachesys','/journal','/wij','/dthealth','/backup','/data'] MntList = ['/', '/dev', '/dev/shm', '/run', '/sys/fs/cgroup', '/home', '/boot', '/journal', '/wij', '/data', '/cachesys', '/backup', '/dthealth', '/run/user/0'] Data = [] for Mnt in MntList: # 执行命令 Cmd = "df -lh " stdin, stdout, stderr = SSHCli.exec_command(Cmd + Mnt) try: OutStr = stdout.read().decode().splitlines()[1] Usage = re.findall(r'\S{1,}', OutStr)[4] DicTmp = {} DicTmp[Mnt] = Usage Data.append(DicTmp) except: pass # 关闭连接 SSHCli.close() Ret["data"] = Data return JSON.dumps(Ret, ensure_ascii=False) class Msg(): """短信接口""" @classmethod def sendListenMsg(cls, Contetn, Phone=""): """调用医院短信平台,发送短信""" Wsdl_Url = "http://100.169.130.50:57772/dthealth/web/wcw.soap.ShortMsg.cls?WSDL=1&CacheUserName=dhwebservice&CachePassword=dhwebservice&CacheNoRedirect=1" Soap = suds.Client(Wsdl_Url) # 设置Token安全登录验证 security = Security() token = UsernameToken('dhwebservice', 'dhwebservice') security.tokens.append(token) Soap.set_options(wsse=security) # 接收电话(多个手机号用","拼接) if Phone=="": Phone = "180***65,156***67,176***69" # 调用接口 Ret = Soap.service.sendMsg(Contetn, Phone) return Ret def runLinux(P_IP, P_Port, P_User, P_Password): """执行Linux监测程序并发送预警短信""" IP = P_IP Port = int(P_Port) User = P_User Password = P_Password Lixmnt = LinuxMntListen() MntList = JSON.loads(Lixmnt.getSpaceInfo(IP, Port, User, Password)) # print(MntList["data"]) NeedSendCont = [] for Item in MntList["data"]: for MntName, MntPct in Item.items(): # print(float(MntPct.strip("%"))) if float(MntPct.strip("%")) >= 90: NeedSendCont.append("挂载空间【" + MntName + "】使用率为【" + MntPct.replace("%", "%") + "】,空间不足。") # 短息内容 MsgContent = "服务器监测预警:服务器" + IP + "".join(NeedSendCont) + "请及时报给信息科处理!" # 发短信 MsgRet = "" if len(NeedSendCont): MsgRet = Msg.sendListenMsg(MsgContent) if MsgRet == "1": MsgRet = "发送短信成功。" else: MsgRet = "未发送短信,或发送短信失败。" print(MsgRet + "短信内容为:" + MsgContent) if __name__ == '__main__': # 程序入口 runLinux("100.169.130.50", "22", "root", "Huawei@123000")

 

标签:Python,IP,Ret,User,Linux,Password,Port,paramiko
From: https://www.cnblogs.com/wcwnina/p/16638907.html

相关文章

  • redis(linux)
    官网下载安装包https://redis.io/download/安装gcc,命令yuminstallgcc进入安装目录make命令进行编译如果报错-jemalloc/jemalloc.h:没有哪个文件,首先看有没有gcc,然后......
  • Python学习笔记:异常值检测之箱线图
    一、介绍箱线图也称箱须图、箱形图、盒图,用于反映一组或多组连续型定量数据分布的中心位置和散布范围。箱形图包含数学统计量,不仅能够分析不同类别数据各层次水平差异,还能......
  • linux磁盘初始化
    #新系统初始化注意:由于镜像已经做了初始化,所以拿到服务器后只许做以下操作即可使用1.磁盘挂载如果系统没有做逻辑卷的命令,需要自己安装yum-yinstalllvm2fdisk-lpvcr......
  • 零基础玩转Python Flask框架-学完可就业 笔记
    P5.1.Flask使用app.config来进行对象配置app.config['SECRET_KEY']="xxx"2.可以把配置项目放到单独一个文件里面通过,app.config.from_object()来加载setting.pySEC......
  • Python 使用wmi获取远程端电脑的磁盘使用情况
    安装wmi包pipinstallwmi说明:执行上面命令会自动安装依赖包pywin32代码演示importjsonasJSONimportreimportparamikoimportsudsfromsuds.wsseimport......
  • Linux系统的SSH优化
    在Linux系统中,我们想使用SSH命令登录到另一台服务器中,在第一次登录时,会提示我们验证指纹,如下所示同一网络下,为了确保你想SSH访问的Linux系统是无误的,可以在另一端确认指......
  • Python基础语法知识
    3、python基础语法知识3.1变量1.什么是变量?可以变化的量2.为什么要有变量?程序去执行一种状态,并且是可以变化的1.变量的使用原则:先定义,后使用name='hello'#定义pr......
  • Python基础
    Python1、基础知识1.1编程语言什么是语言?为什么要有编程语言?什么是编程?为什么要编程?编程语言的本质就是一门语言,是人与计算机沟通的一种介质。人与人之间......
  • Linux是严格区分大小写的,这一点和 Windows不一样,所以操作时要注意区分大小写的不同,包
    linux下的文件夹名字区分大小写吗?_百度知道 https://zhidao.baidu.com/question/395925577.htmlLinux是严格区分大小写的,这一点和Windows不一样,所以操作时要注意区分......
  • Python--自动将文件分类归入文件夹
    转载:(63条消息)Python--自动将文件分类归入文件夹_JavaNewMans的博客-CSDN博客_python文件夹分类   ##推荐(63条消息)【python】将不同后缀的文件分开到不同文......