Dmidecode-获取Linux硬件信息

Dmidecode

dmidecode的作用是将DMI数据库中的信息解码,以可读的文本方式显示。

DMI简介

  DMI (Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统:DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。 SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。SMBIOS和DMI是由行业指导机构Desktop Management Task Force (DMTF)起草的开放性的技术标准,其中DMI设计适用于任何的平台和操作系统。
  **DMI充当了管理工具和系统层之间接口的角色**。它建立了标准的可管理系统更加方便了电脑厂商和用户对系统的了解。DMI的主要组成部分是Management Information Format (MIF)数据库。这个数据库包括了所有有关电脑系统和配件的信息。通过DMI,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息。

安装DMI

若没有dmidecode,指令安装即可。

Debian/Ubuntu : apt-get install dmidecode
RHEL/CentOS/Fedora :yum install dmidecode

实例

dmidecode -s system-uuid 获取system-uuid
dmidecode -t processor |grep ID 获取CPU ID

dmidecode参数string及type列表:</

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个检查 Linux 系统硬件信息的 Python 脚本,执行过程如下: 1. 使用命令 `cat /proc/cpuinfo | grep -i 'Model name' | awk -F: '{$1="";sub("^ *","");$2="";sub(" *$","");print}'` 获取 CPU 型号信息; 2. 使用命令 `dmidecode -t processor | grep -c Version` 获取 CPU 版本信息; 3. 使用命令 `dmidecode -t memory | grep -i 'Part Number' | grep -v 'NO DIMM' | awk -F: '{$1="";sub("^ *","");$2="";sub(" *$","");print}'` 获取内存型号信息; 4. 使用命令 `dmidecode -t memory | grep -i size | grep -cvi no` 获取内存大小信息; 5. 使用命令 `lspci | grep Eth | awk -F ': ' '{$1="";sub("^ *","");$2="";sub(" *$","");print}'` 获取网卡型号信息; 6. 将上述信息保存到文件中; 7. 执行 `ipmitool power cycle` 命令重启系统; 8. 进入系统后重复执行步骤 1-5; 9. 循环执行上述步骤 20 次。 下面是实现这个脚本的 Python 代码: ```python import os count = 20 for i in range(count): # 获取 CPU 型号信息 cpu_model = os.popen("cat /proc/cpuinfo | grep -i 'Model name' | awk -F: '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip() # 获取 CPU 版本信息 cpu_version = os.popen("dmidecode -t processor | grep -c Version").read().strip() # 获取内存型号信息 memory_model = os.popen("dmidecode -t memory | grep -i 'Part Number' | grep -v 'NO DIMM' | awk -F: '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip() # 获取内存大小信息 memory_size = os.popen("dmidecode -t memory | grep -i size | grep -cvi no").read().strip() # 获取网卡型号信息 nic_model = os.popen("lspci | grep Eth | awk -F ': ' '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip() # 将信息保存到文件中 with open("hardware_info.txt", "a") as f: f.write(f"CPU 型号: {cpu_model}\n") f.write(f"CPU 版本: {cpu_version}\n") f.write(f"内存型号: {memory_model}\n") f.write(f"内存大小: {memory_size}\n") f.write(f"网卡型号: {nic_model}\n") f.write("\n") # 重启系统 os.system("ipmitool power cycle") # 等待系统重启完成 time.sleep(60) # 再次获取硬件信息 cpu_model = os.popen("cat /proc/cpuinfo | grep -i 'Model name' | awk -F: '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip() cpu_version = os.popen("dmidecode -t processor | grep -c Version").read().strip() memory_model = os.popen("dmidecode -t memory | grep -i 'Part Number' | grep -v 'NO DIMM' | awk -F: '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip() memory_size = os.popen("dmidecode -t memory | grep -i size | grep -cvi no").read().strip() nic_model = os.popen("lspci | grep Eth | awk -F ': ' '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip() # 将信息保存到文件中 with open("hardware_info.txt", "a") as f: f.write(f"重启后 CPU 型号: {cpu_model}\n") f.write(f"重启后 CPU 版本: {cpu_version}\n") f.write(f"重启后 内存型号: {memory_model}\n") f.write(f"重启后 内存大小: {memory_size}\n") f.write(f"重启后 网卡型号: {nic_model}\n") f.write("\n") ``` 注意,如果要执行 `ipmitool power cycle` 命令需要使用 root 权限。此外,为了防止重启过程中文件写入失败,最好将文件名改为绝对路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值