dmidecode收集硬體資訊命令

2021-09-26 14:56:38 字數 4449 閱讀 8114

dmidecode 使用 smbios/dmi 標準,在linux下收集相關硬體資訊

# 特殊使用方式

# 如 直接使用dmidecode 得出如下結果

handle 0x0001, dmi type 1, 27 bytes

system information

manufacturer: vmware, inc.

product name: vmware virtual platform

version: none

serial number: vmware-56 4d 83 35 b6 1a ca 95-e6 c4 c9 f3 b6 e8 69 cd

uuid: 564d8335-b61a-ca95-e6c4-c9f3b6e869cd

wake-up type: power switch

sku number: not specified

family: not specified

handle 0x0004, dmi type 4, 35 bytes

processor information

socket designation: cpu socket #0

type: central processor

family: unknown

manufacturer: genuineintel

id: c3 06 03 00 ff fb ab 1f

version: intel(r) core(tm) i7-4790 cpu @ 3.60ghz

# 獲取系統平台 dmidecode -s system-product-name 只需要前面 加-s system-key小寫空格改為-

# 需要注意的是 看它換行來決定它的字首 如 processor information 那就是 -s processor-名稱

# 如 獲取cpu版本 dmidecode -s processor-version | head -n 1 只需要取第乙個

]# dmidecode -t processor | grep version | head -n 1

version: intel(r) core(tm) i7-4790 cpu @ 3.60ghz

]# dmidecode | grep 'product name'

product name: vmware virtual platform

product name: 440bx desktop reference platform

]# dmidecode -s system-serial-number

vmware-56 4d 83 35 b6 1a ca 95-e6 c4 c9 f3 b6 e8 69 cd

]# dmidecode|grep -p -a5 "memory\s+device"|grep size|grep -v range | grep -v "no module installed"

size: 2048 mb

]# dmidecode|grep 'maximum capacity'

maximum capacity: 1 tb

]# dmidecode|grep -a16 'memory device'|grep 'speed'

speed: 1333 mhz

speed: 1333 mhz

speed: 1333 mhz

speed: 1333 mhz

]# lscpu 

architecture: x86_64

cpu op-mode(s): 32-bit, 64-bit

byte order: little endian

cpu(s): 2

on-line cpu(s) list: 0,1

thread(s) per core: 1

core(s) per socket: 2

座: 1

numa 節點: 1

廠商 id: genuineintel

cpu 系列: 6

型號: 60

型號名稱: intel(r) core(tm) i7-4790 cpu @ 3.60ghz

步進: 3

cpu mhz: 3597.915

bogomips: 7195.83

超管理器廠商: vmware

虛擬化型別: 完全

l1d 快取: 32k

l1i 快取: 32k

l2 快取: 256k

l3 快取: 8192k

numa 節點0 cpu: 0,1

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

#import subprocess

import platform

import psutil

def command(com):

# 執行命令, 返回獲取的結果

result = subprocess.popen(com,

stdout=subprocess.pipe,

stderr=subprocess.pipe,

shell=true)

_getdata = str(result.stdout.read().strip(), 'utf-8') # 將 bytes 轉換成 str格式並且去掉\n

return _getdata

def sysinfo():

# 當前磁碟採集的只支援如下磁碟型別

_dick_type = ['ntfs', 'xfs', 'ext3', 'ext4']

# 只獲取 記憶體,cpu, 機器, 磁碟的固定結果

dic = , "cpu": {}, "machine": {}, "disk": {}}

# ------- 記憶體 固定值: 總大小, 記憶體的規格如 speed: 1333mhz

dic["memory"].update() # 記憶體的總大小

memtype = command("dmidecode|grep -a16 'memory device'|grep 'speed' | head -n 1 | cut -d ':' -f 2")

dic["memory"].update()

# 固定值: 物理數, 邏輯核數, cpu型號

dic["cpu"].update() # 獲取cpu的物理數

dic["cpu"].update() # 執行緒數

# 獲取cpu型號

version = command("dmidecode -s processor-version | head -n 1")

dic['cpu'].update()

# 固定值: 序列號, 伺服器型號,作業系統, 製造商, 資產編號, 系統版本

dic['machine'].update() # 序列號

dic['machine'].update() # 伺服器型號

dic['machine'].update() # 製造商

dic['machine'].update() # 序列號

dic["machine"].update() # 作業系統

dic["machine"].update() # 系統版本

dic["machine"].update() # 主機名稱

for sdick in psutil.disk_partitions():

# 判斷型別是否存在列表中

Dmidecode 獲取Linux硬體資訊

dmidecode的作用是將dmi資料庫中的資訊解碼,以可讀的文字方式顯示。dmi desktop management inte ce,dmi 就是幫助收集電腦系統資訊的管理系統 dmi資訊的收集必須在嚴格遵照smbios規範的前提下進行。smbios system management bios...

dmidecode檢視伺服器硬體資訊

dmidecode是乙個資訊轉換工具,能把系統中的硬體資訊輸出為友好的可讀性的資訊展現給我們 一些知名廠商的伺服器還可以展現出其伺服器型號,序列號等等,可以有效的幫助我們做一些資產管理的工作 比如我可以在一台dell的伺服器上檢視到 bash dmidecode t 1 handle 0x0002 ...

網上收集的C 獲取硬體資訊

using system using system.runtime.interopservices using system.management namespace hardware 取cpu編號 public string getcpuid return strcpuid catch end m...