一、机器整体信息收集
主要用到的命令:
ipmitool lan print #获取ipmi地址
hostname #获取主机名
dmidecode -t system #获取设备型号和sn等信息
import subprocess hostname = subprocess.Popen("hostname", stdout=subprocess.PIPE, shell=True).stdout.read().decode().split('\n')[0] IPMI = subprocess.Popen("ipmitool lan print | grep 'IP Address '| grep -v Source | awk -F ':' '{print $2}'", stdout=subprocess.PIPE, shell=True).stdout.read().decode().split('\n')[0] filter_keys = ['Manufacturer','Serial Number', 'Product Name', 'UUID', 'Wake-up Type'] for key in filter_keys: try: res = subprocess.Popen("dmidecode -t system | grep '%s'" % key, stdout=subprocess.PIPE, shell=True) result = res.stdout.read().decode data_list = result.split(':') if len(data_list) > 1: raw_data[key] = data_list[1].strip() else: raw_data[key] = '' except Exception as e: print(e) raw_data[key] = '' data = dict() data['Manufacturer'] = raw_data['Manufacturer'] data['sn'] = raw_data['Serial Number'] data['model'] = raw_data['Product Name'] data['uuid'] = raw_data['UUID'] data['wale_up_type'] = raw_data['Wake-up Type'] data['hostname'] = hostname data['IPMI'] = IPMI