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...