01
PART
知识回顾
本篇文章,我们重点介绍服务器"资产"信息的获取。
前期知识储备和回顾,请参考以下文章
01)运维天地-服务器01-X86-PCServer属性介绍
特别说明:本文的服务器特指X86-PCServer硬件服务器
02
PART
X86-PCServer资产信息获取
A
获取脚本
#!/usr/bin/python
#-*- coding: utf-8 -*-
#author: wangzhiguo
#date: 2020.01.28
import commands
import re
class BrandInfo():
def __init__(self):
return
def get_manufacturer(self):
status, output = commands.getstatusoutput("/usr/sbin/dmidecode -t system | grep Manufacturer")
if re.findall('inspur', output, re.IGNORECASE):
manufacturer = "INSPUR"
return manufacturer
elif re.findall('sugon', output, re.IGNORECASE):
manufacturer = "SUGON"
return manufacturer
elif re.findall('huawei', output, re.IGNORECASE):
manufacturer = "HUAWEI"
return manufacturer
elif re.findall('h3c', output, re.IGNORECASE):
manufacturer = "H3C"
return manufacturer
elif re.findall('dell', output, flags=re.IGNORECASE):
manufacturer = "DELL"
return manufacturer
elif re.findall('hp', output, flags=re.IGNORECASE):
manufacturer = "HP"
return manufacturer
elif re.findall('ibm', output, flags=re.IGNORECASE):
manufacturer = "IBM"
return manufacturer
else:
manufacturer = "OTHER"
return manufacturer
def get_product_name_part(self):
#fit for hp/h3c/dell
status, output = commands.getstatusoutput("dmidecode -t system | grep 'Product Name'")
output =output.split(":")[1].lstrip().split()
del output[0]
product_name = ""
for temp in output:
product_name += temp
return product_name
def get_product_name_all(self):
#fit for inspur/sugon/huawei
status, output = commands.getstatusoutput("dmidecode -t system | grep 'Product Name'")
output =output.split(":")[1].lstrip().split()
product_name = ""
for temp in output:
product_name += temp
return product_name
def get_serial_number(self):
status, output = commands.getstatusoutput("dmidecode -t system | grep 'Serial Number'")
serial_number = output.split(":")[1].strip()
return serial_number
def get_all(self):
status, output = commands.getstatusoutput("/usr/sbin/dmidecode -t system | grep Manufacturer")
if re.findall('inspur', output, re.IGNORECASE):
manufacturer = "INSPUR"
product_name = self.get_product_name_all()
serial_number = self.get_serial_number()
return manufacturer, product_name, serial_number
elif re.findall('sugon', output, re.IGNORECASE):
manufacturer = "SUGON"
product_name = self.get_product_name_all()
serial_number = self.get_serial_number()
return manufacturer, product_name, serial_number
elif re.findall('huawei', output, re.IGNORECASE):
manufacturer = "HUAWEI"
product_name = self.get_product_name_all()
serial_number = self.get_serial_number()
return manufacturer, product_name, serial_number
elif re.findall('h3c', output, re.IGNORECASE):
manufacturer = "H3C"
product_name = self.get_product_name_part()
serial_number = self.get_serial_number()
return manufacturer, product_name, serial_number
elif re.findall('dell', output, flags=re.IGNORECASE):
manufacturer = "DELL"
product_name = self.get_product_name_part()
serial_number = self.get_serial_number()
return manufacturer, product_name, serial_number
elif re.findall('hp', output, flags=re.IGNORECASE):
manufacturer = "HP"
product_name = self.get_product_name_part()
serial_number = self.get_serial_number()
return manufacturer, product_name, serial_number
elif re.findall('ibm', output, flags=re.IGNORECASE):
manufacturer = "IBM"
product_name = self.get_product_name_all()
serial_number = self.get_serial_number()
return manufacturer, product_name, serial_number
else:
manufacturer = "OTHER"
product_name = self.get_product_name_all()
serial_number = self.get_serial_number()
return manufacturer, product_name, serial_number
def main():
temp = BrandInfo()
print(temp.get_all())
if __name__ == '__main__':
main()
B
获取方法概述
IT架构更多学习:请关注"大话IT架构"公众号
LOMO
个人价值观:利他双赢
个人微信号:it_beijing
IT领域交流精进群,请加个人微信:it_beijing