paramiko获取主机信息

  1 import re
  2 import paramiko
  3 
  4 host="192.168.4.88"
  5 user = "root"
  6 password = "123456"
  7 
  8 class GetLinuxMessage:
  9 #登录远程Linux系统
 10     def session(self, host, port, username, password=password):
 11 
 12         try:
 13             ssh = paramiko.SSHClient()
 14             ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 15             ssh.connect(host, int(port), username, password)
 16             print("Login %s is successful" % host)
 17             return ssh
 18         except Exception as e:
 19             print(e.message)
 20 
 21 
 22     #获取Linux主机名/root/桌面/开发/h5
 23     def get_hostname(self, host, port=22, username=user, password=password):
 24         cmd_hostname = "hostname"
 25         client = self.session(host, port, username, password)
 26         stdin, stdout, stderr = client.exec_command(cmd_hostname)
 27         hostname = stdout.read().decode(encoding='utf-8')
 28         return hostname
 29 
 30     #获取Linux网络ipv4信息
 31     def get_ifconfig(self, host, port=22, username=user, password=password):
 32         client = self.session(host, port, username, password)
 33         stdin, stdout, stderr = client.exec_command("ifconfig eth0")
 34         data = stdout.read().decode(encoding='utf-8')
 35         print(data)
 36         #ret = re.compile('((?:1[0-9][0-9]\.)|(?:25[0-5]\.)|(?:2[0-4][0-9]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}((1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])|([1-9][0-9])|([0-9]))')
 37         ret = re.compile('(?:19[0-9]\.)((?:1[0-9][0-9]\.)|(?:25[0-5]\.)|(?:2[0-4][0-9]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){2}((1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])|([1-9][0-9])|([0-9]))')
 38         match = ret.search(data).group()
 39         return match
 40 
 41     #获取Linux系统版本信息
 42     def get_version(self, host, port=22, username=user, password=password):
 43 
 44         client = self.session(host, port, username, password)
 45         stdin, stdout, stderr = client.exec_command("cat /etc/redhat-release")
 46         data = stdout.read().decode(encoding='utf-8')
 47         return str(data)
 48 
 49     #获取Linux系统CPU信息
 50     def get_cpu(self, host, port=22, username=user, password=password):
 51 
 52         cpunum = 0
 53         processor = 0
 54         client = self.session(host, port, username, password)
 55         stdin, stdout, stderr = client.exec_command("cat /proc/cpuinfo")
 56         cpuinfo = stdout.readlines()
 57         #with stdout.read() as cpuinfo:
 58         for i in cpuinfo:
 59             if i.startswith('physical id'):
 60                 cpunum = i.split(":")[1]
 61             if i.startswith('processor'):
 62                 processor = processor + 1
 63             if i.startswith('model name'):
 64                 cpumode = i.split(":")[1]
 65         return int(cpunum)+1, processor,cpumode
 66 
 67     #获取Linux系统memory信息
 68     def get_memory(self, host, port=22, username=user, password=password):
 69 
 70         client = self.session(host, port, username, password)
 71         stdin, stdout, stderr = client.exec_command("cat /proc/meminfo")
 72         meminfo = stdout.readlines()
 73         #with open('/proc/meminfo') as meminfo:
 74         for i in meminfo:
 75             if i.startswith('MemTotal'):
 76                 memory = int(i.split()[1].strip())
 77                 memory = '%.f' %(memory / 1024.0) + 'MB'
 78             else:
 79                 pass
 80         return memory
 81 
 82     #获取Linux系统网卡信息
 83     def get_ethernet(self, host, port=22, username=user, password=password):
 84 
 85         client = self.session(host, port, username, password)
 86         stdin, stdout, stderr = client.exec_command("lspci")
 87         data = stdout.read().decode(encoding='utf8')
 88         ret = re.compile('Eth[^\d].*')
 89         eth = ret.search(data).group()
 90         return eth
 91 
 92 
 93 if __name__ == '__main__':
 94 
 95     # host = input("please input the hostname: ")
 96     result = GetLinuxMessage()
 97     result1 = result.get_hostname(host)
 98     print ('主机名:%s' %result1)
 99     result2 = result.get_ifconfig(host)
100     print ('主机IP:%s' %result2)
101     result3 = result.get_version(host)
102     print ('版本信息:%s' %result3)
103     result4,result5,result6 = result.get_cpu(host)
104     print ('物理CPU数量:%s' %result4)
105     print ('逻辑CPU数量:%s' %result5)
106     print ('物理CPU型号:%s' %result6)
107     result7 = result.get_memory(host)
108     print ('物理内存:%s' %result7)
109     result8 = result.get_ethernet(host)
110     print ('网卡型号:%s' %result8)

 

import re
import paramiko

host="192.168.4.88"
user = "root"
password = "123456"

class GetLinuxMessage:
#登录远程Linux系统
def session(self, host, port, username, password=password):

try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, int(port), username, password)
print("Login %s is successful" % host)
return ssh
except Exception as e:
print(e.message)


#获取Linux主机名/root/桌面/开发/h5
def get_hostname(self, host, port=22, username=user, password=password):
cmd_hostname = "hostname"
client = self.session(host, port, username, password)
stdin, stdout, stderr = client.exec_command(cmd_hostname)
hostname = stdout.read().decode(encoding='utf-8')
return hostname

#获取Linux网络ipv4信息
def get_ifconfig(self, host, port=22, username=user, password=password):
client = self.session(host, port, username, password)
stdin, stdout, stderr = client.exec_command("ifconfig eth0")
data = stdout.read().decode(encoding='utf-8')
print(data)
#ret = re.compile('((?:1[0-9][0-9]\.)|(?:25[0-5]\.)|(?:2[0-4][0-9]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}((1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])|([1-9][0-9])|([0-9]))')
ret = re.compile('(?:19[0-9]\.)((?:1[0-9][0-9]\.)|(?:25[0-5]\.)|(?:2[0-4][0-9]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){2}((1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])|([1-9][0-9])|([0-9]))')
match = ret.search(data).group()
return match

#获取Linux系统版本信息
def get_version(self, host, port=22, username=user, password=password):

client = self.session(host, port, username, password)
stdin, stdout, stderr = client.exec_command("cat /etc/redhat-release")
data = stdout.read().decode(encoding='utf-8')
return str(data)

#获取Linux系统CPU信息
def get_cpu(self, host, port=22, username=user, password=password):

cpunum = 0
processor = 0
client = self.session(host, port, username, password)
stdin, stdout, stderr = client.exec_command("cat /proc/cpuinfo")
cpuinfo = stdout.readlines()
#with stdout.read() as cpuinfo:
for i in cpuinfo:
if i.startswith('physical id'):
cpunum = i.split(":")[1]
if i.startswith('processor'):
processor = processor + 1
if i.startswith('model name'):
cpumode = i.split(":")[1]
return int(cpunum)+1, processor,cpumode

#获取Linux系统memory信息
def get_memory(self, host, port=22, username=user, password=password):

client = self.session(host, port, username, password)
stdin, stdout, stderr = client.exec_command("cat /proc/meminfo")
meminfo = stdout.readlines()
#with open('/proc/meminfo') as meminfo:
for i in meminfo:
if i.startswith('MemTotal'):
memory = int(i.split()[1].strip())
memory = '%.f' %(memory / 1024.0) + 'MB'
else:
pass
return memory

#获取Linux系统网卡信息
def get_ethernet(self, host, port=22, username=user, password=password):

client = self.session(host, port, username, password)
stdin, stdout, stderr = client.exec_command("lspci")
data = stdout.read().decode(encoding='utf8')
ret = re.compile('Eth[^\d].*')
eth = ret.search(data).group()
return eth


if __name__ == '__main__':

# host = input("please input the hostname: ")
result = GetLinuxMessage()
result1 = result.get_hostname(host)
print ('主机名:%s' %result1)
result2 = result.get_ifconfig(host)
print ('主机IP%s' %result2)
result3 = result.get_version(host)
print ('版本信息:%s' %result3)
result4,result5,result6 = result.get_cpu(host)
print ('物理CPU数量:%s' %result4)
print ('逻辑CPU数量:%s' %result5)
print ('物理CPU型号:%s' %result6)
result7 = result.get_memory(host)
print ('物理内存:%s' %result7)
result8 = result.get_ethernet(host)
print ('网卡型号:%s' %result8)

转载于:https://www.cnblogs.com/ray-mmss/p/10619202.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值