戴尔R740服务器获取cpu、内存、硬盘参数信息。
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,戴尔R740服务器获取cpu、内存、硬盘参数信息。使用redfish协议,只使用了system的一个总URL即可获取所有参数。import requestsimport jsonrequests.pa
千家信息网最后更新 2025年01月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安全错误
数据库的锁怎样保障安全
南宁加固服务器咨询
区块链网络技术研究
上海智能巡检软件开发中心
数据库系统易用性兼容性
中国网络安全校园启动仪式
腾讯微信语音聊天数据库能不能查
网络安全资讯红黑网
陕西省皇朝网络技术
网络安全内部威胁主要手段包括
阿里云服务器新建网站
数据库怎么查最新的10条数据
数据库测试怎么实现
普恒网络技术有限公司地址
区块链的数据库
高职学的软件开发该如何找工作
《网络安全法》简报
网络安全实训室是真的吗
厦门网络安全示范区
天水教育网络安全培训
金华办公软件开发公司
网络安全法以
软件开发测试男友风穿搭
渗透测试和网络安全工程师
储存文件用什么服务器
课程软件开发有哪些
软件开发人才外包中心
广州58同城软件开发兼职
江苏省交通互联网科技公司
139邮箱服务器删除了怎么恢复
徐州阑谭网络技术有限公司