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)