戴尔R740服务器获取cpu、内存、硬盘参数信息。
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,戴尔R740服务器获取cpu、内存、硬盘参数信息。使用redfish协议,只使用了system的一个总URL即可获取所有参数。import requestsimport jsonrequests.pa
千家信息网最后更新 2024年11月27日戴尔R740服务器获取cpu、内存、硬盘参数信息。
戴尔R740服务器获取cpu、内存、硬盘参数信息。使用redfish协议,只使用了system的一个总URL即可获取所有参数。
import requestsimport jsonrequests.packages.urllib3.disable_warnings()##使用一个system总的URL分别获取到cpu、内存、存储三个url.所以只修改system的URL即可##sel日志单独使用URL获取class GetHostInfo(object): def __init__(self,ipaddr,username,password): self.URLprefix='https://'+ipaddr.strip() self.username=username.strip() self.password=password.strip() global token ##同时存在4-5个token链接,每个token链接时间为5分钟,可以自己设置。 token=0 tokenurl=self.URLprefix+'/redfish/v1/Sessions' ##dell获取token的ID print(tokenurl) data={ "UserName":self.username, "Password":self.password } header={ "Content-Type":"application/json" } re1=requests.post(tokenurl,json.dumps(data),headers=header,verify=False) #re1=requests.post(tokenurl,auth=(self.username,self.password),headers=header,verify=False) print (re1.status_code) if re1.status_code == 201: #print (re1.json()) #print (re1.headers) print (re1.headers['X-Auth-Token']) token=re1.headers['X-Auth-Token'] else: pass def GetInfo(self,URL_suffix): #定义总获取函数,传参url的后半部分。如'/redfish/v1/Systems/1/Memory' urlset=self.URLprefix+URL_suffix if token !=0: header = { "Content-Type":"application/json", "X-Auth-Token":token } re1=requests.get(urlset,headers=header,verify=False) print(re1.status_code) return re1.json() else: passdef Collect_Info(ipaddr,username,password): dell740=GetHostInfo(ipaddr,username,password) ####total_system_URL收集/redfish/v1/Systems/System.Embedded.1 select_system_total = '/redfish/v1/Systems/System.Embedded.1' #print('cpu_total', hw2288HV5.GetInfo(select_cpu_total)) temp_system_result1= dell740.GetInfo(select_system_total) if isinstance(temp_system_result1,dict) and ('error' not in temp_system_result1.keys() ): ##处理cpu cpu = temp_system_result1['Processors']['@odata.id'] ##获取CPU的URL #print ('Processors',dell740.GetInfo(cpu)) cpu_result1 = dell740.GetInfo(cpu) cpu_count = cpu_result1['Members@odata.count'] cpu_URLsuffix_list = [x['@odata.id'] for x in cpu_result1['Members']] print('CPU count:', cpu_count) for single_cpuurl in cpu_URLsuffix_list: singlecpu_result2= dell740.GetInfo(single_cpuurl) if isinstance(singlecpu_result2, dict) and ('error' not in singlecpu_result2.keys()): #print ('singlecpu_result2',singlecpu_result2) print('CPU single name:', singlecpu_result2['Name']) print('CPU single ID:', singlecpu_result2['Id']) print('CPU single TotalCores(cpus):', singlecpu_result2['TotalCores']) print('CPU single Model(cpus):', singlecpu_result2['Model']) ###处理内存 memory = temp_system_result1['Memory']['@odata.id'] ##获取内存的URL memory_result1 = dell740.GetInfo(memory) memory_count = memory_result1['Members@odata.count'] memory_URLsuffix_list = [x['@odata.id'] for x in memory_result1['Members']] print ('Memory count:',memory_count) for single_memoryurl in memory_URLsuffix_list: singlememory_result2 = dell740.GetInfo(single_memoryurl) if isinstance(singlememory_result2, dict) and ('error' not in singlememory_result2.keys()): #print('singlecpu_result2', singlememory_result2) print('Memory name:', singlememory_result2['Name']) print('Memory ID:', singlememory_result2['Id']) print('Memory Size:', singlememory_result2['CapacityMiB']) print('Memory Type:', singlememory_result2['MemoryDeviceType']) ##处理存储 storage = temp_system_result1['Storage']['@odata.id'] ##获取存储URL #print ('storage',dell740.GetInfo(storage)) storage_result1 = dell740.GetInfo(storage) storage_URLsuffix_list = [x['@odata.id'] for x in storage_result1['Members']] for single_storageurl in storage_URLsuffix_list: singlestorage_result2 = dell740.GetInfo(single_storageurl) if isinstance(singlestorage_result2, dict) and ('error' not in singlestorage_result2.keys()): #print('singlecpu_result2', singlestorage_result2) disk_count=singlestorage_result2['Drives@odata.count'] print('disk count:',disk_count) print('storage name:',singlestorage_result2['Id']) if disk_count >0: ##有的URL中disk为0,不需要去获取值 single_disk_URLsuffix_list = [x['@odata.id'] for x in singlestorage_result2['Drives']] for disk_single in single_disk_URLsuffix_list: single_disk_result1 = dell740.GetInfo(disk_single) if isinstance(single_disk_result1, dict) and ('error' not in single_disk_result1.keys()): #print ('single_disk_result1',single_disk_result1) print('disk name:', single_disk_result1['Name']) print('disk ID:', single_disk_result1['Id']) print('disk CapacityBytes:', single_disk_result1['CapacityBytes']) print('disk MediaType:', single_disk_result1['MediaType']) else: pass ##获取sel日志 logurlsuffix = '/redfish/v1/Managers/iDRAC.Embedded.1/Logs/Sel' ##日志sel sellog=dell740.GetInfo(logurlsuffix) if isinstance(sellog,dict) and ('error' not in sellog.keys() ): print('SEL log:',sellog)if __name__ == '__main__': Collect_Info('10.252.209.7', 'username', 'password')
内存
日志
处理
存储
参数
链接
信息
服务器
硬盘
戴尔
服务
三个
函数
半部
同时
时间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术简单好写的论文
计算机服务器配置
海丝起点网络技术有限公司
软件开发管理团队
科技互联网推广专员
选修网络安全
浙江工业软件开发价格大全
网络安全大意不得
郑州软件开发app哪家公司好
网络安全日本知乎
长沙市计算机网络技术专业大专
连云港银联软件开发
pg数据库字段status查询
邯尚网络技术有限公司
大型机柜服务器多少钱
我的世界服务器沙子怎么获得
曲阜网络安全设备采购项目
中美网络安全企业对比
河南统计台帐软件开发公司
服务器http管理员密码
服务器管理器没反应
戴尔服务器面板按钮是什么意思
我国网络安全技术现状
网络安全建设责任书
饥荒加入服务器可以用代码吗
云数据库安全系统
软件开发那种语言比较好
怀化软件开发应聘
四级英语听力软件开发
数据库用来分组