1. 查看服务器及内存型号信息
1.1. dmidecode简介
DMI(Desktop Management Interface,DMI)直译就是“桌面管理界面”,它就是通过收集系统信息来管理系统。其主要组成部分是Management Information Format(MIF)数据库。这个数据库包括了所有有关电脑系统和配件的信息。通过DMI,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息。DMI充当了管理工具和系统层之间接口的角色。它建立了标准的可管理系统更加方便了电脑厂商和用户对系统的了解。dmidecode就是将DMI数据库里面的信息解码后,以文本的方式进行展现的。dmidecode遵循SMBIOS/DMI标准,其输出的信息包括BIOS、系统、主板、处理器、内存、缓存等等。因此我们可以在Linux系统下通过dmidecode来获取有关硬件方面的信息。(DMI信息是可以人为篡改,存在查询结果不准确的问题。不过一般正规途径的机器不会去被篡改。)
SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。SMBIOS和DMI是由行业指导机构Desktop Management Task Force(DMTF)起草的开放性的技术标准,其中DMI设计适用于任何的平台和操作系统。
1.2. dmidecode参数选项
以下为dmidecode的命令选项:
命令参数 |
描述 |
-d, --dev-mem FILE |
从设备文件读取信息,输出内容与不加参数标准输出相同。 |
-h, --help |
显示帮助信息 |
-q, --quiet |
安静模式,尽量不输出冗余的信息。 |
-s, --string KEYWORD |
只显示指定DMI字符串的信息。 |
-t, --type TYPE |
只输出指定类型的信息 |
-H, --handle HANDLE |
只输出指定句柄的信息 |
-u, --dump |
显示未解码的原始条目内容。 |
--dump-bin FILE |
输出二进制格式的DMI数据文件 |
--from-dump FILE |
从二进制的DMI数据文静读取数据 |
--no-sysfs |
禁止从sysfs文件读取DMI数据 |
--oem-string N |
只从OEM字符串中读取数据 |
-V, --version |
显示版本信息 |
不带选项执行dmidecode通常会输出所有的硬件信息。而本文只重点介绍“写作背景”中用到的,也是常用的选项:-t 。选项type内容有:bios、system、baseboard、chassis、processor、memory、cache、connector、slot。
type全部编码列表:
0 BIOS |
14 Group Associations |
28 Temperature Probe |
1 System |
15 System Event Log |
29 Electrical Current Probe |
2 Base Board |
16 Physical Memory Array |
30 Out-of-band Remote Access |
3 Chassis |
17 Memory Device |
31 Boot Integrity Services |
4 Processor |
18 32-bit Memory Error |
32 System Boot |
5 Memory Controller |
19 Memory Array Mapped Address |
33 64-bit Memory Error |
6 Memory Module |
20 Memory Device Mapped Address |
34 Management Device |
7 Cache |
21 Built-in Pointing Device |
35 Management Device Component |
8 Port Connector |
22 Portable Battery |
36 Management Device Threshold Data |
9 System Slots |
23 System Reset |
37 Memory Channel |
10 On Board Devices |
24 Hardware Security |
38 IPMI Device |
11 OEM Strings |
25 System Power Controls |
39 Power Supply |
12 System Configuration Options |
26 Voltage Probe |
40 Additional Information |
13 BIOS Language |
27 Cooling Device |
41 Onboard Device |
1.3. 应用
1、查看服务器型号:dmidecode | grep 'Product Name'
2、查看主板的序列号:dmidecode |grep 'Serial Number'
3、查看系统序列号:dmidecode -s system-serial-number
4、查看内存型号信息:dmidecode -t memory | egrep 'Manufacturer|Serial Number'
5、查看OEM信息:dmidecode -t 11
6、查看现有内存数量和内存大小:dmidecode | grep -A16 "Memory Device" | grep "Size" |sed 's/^[ ]*//' //
7、查看最大支持内存容量:dmidecode | grep "Maximum Capacity" |sed "s/^[ ]*//"
2. 查看CPU型号信息
2.1. lscpu简介
lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令输出的信息包含cpu数量,线程,核数,套接字和Nom-Uniform Memeor Access(NUMA),缓存等 。
2.2. lscpu参数选项
参数选项如下:
参数选项 |
说明 |
-a, –all |
包含上线和下线的cpu的数量,此选项只能与选项e或-p一起指定 |
-b, –online |
只显示出上线的cpu数量,此选项只能与选项e或者-p一起指定 |
-c, –offline |
只显示出离线的cpu数量,此选项只能与选项e或者-p一起指定 |
-e, –extended [=list] |
以人性化的格式显示cpu信息,如果list参数省略,输出所有可用数据的列,在指定了list参数时,选项的字符串、等号(=)和列表必须不包含任何空格或其他空白。比如:’-e=cpu,node’ or ’–extended=cpu,node’ |
-h, –help |
帮助 |
-p, –parse [=list] |
优化命令输出,便于分析.如果省略list,则命令的输出与早期版本的lscpu兼容,兼容格式以两个逗号用于分隔cpu缓存列,如果没有发现cpu缓存,则省略缓存列,如果使用list参数,则缓存列以冒号(:)分隔。在指定了list参数时,选项的字符串、等号(=)和列表必须不包含空格或者其它空白。比如:’-e=cpu,node’ or ’–extended=cpu,node’ |
-s, –sysroot directory |
为一个Linux实例收集CPU数据,而不是发出lscpu命令的实例。指定的目录是要检查Linux实例的系统根 |
-x, –hex |
使用十六进制来表示cpu集合,默认情况是打印列表格式的集合(例如:0,1) |
输出格式如下:
Architecture: #架构
CPU(s): #逻辑cpu颗数
Thread(s) per core: #每个核心线程
Core(s) per socket: #每个cpu插槽核数/每颗物理cpu核数
CPU socket(s): #cpu插槽数
Vendor ID: #cpu厂商ID
CPU family: #cpu系列
Model: #型号
Stepping: #步进
CPU MHz: #cpu主频
Virtualization: #cpu支持的虚拟化技术
L1d cache: #一级缓存(google了下,这具体表示表示cpu的L1数据缓存)
L1i cache: #一级缓存(具体为L1指令缓存)
L2 cache: #二级缓存
2.3. 应用
1、查看CPU型号:lscpu |grep "Model name" 或者 dmidecode -t Processor |grep Version
2、查看CPU逻辑核数:lscpu |grep ^CPU(s)
3、查看CPU 物理核数:lscpu |grep ^Core(s)
3. 查看磁盘型号信息
3.1. 工具介绍
3.1.1. smartctl
smartctl是smartmontools中的一个命令行工具,可以执行SMART任务。SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及,每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来。这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等。硬盘运行了几千小时后,很多内在的物理参数都会发生变化,某一参数超过报警阈值,则说明硬盘接近损坏,此时硬盘依然在工作,如果用户不理睬这个报警继续使用,那么硬盘将变得非常不可靠,随时可能故障
首先通过dmesg工具,确认一下硬盘的设备符号。例如一个IDE硬盘连接到Primary IDE 总线上的Slave位置,硬盘设备符号是/dev/hdb,hdb中的h代表IDE,如果显示为sdb,则代表SATA和SCSI。最后一个字幕b代表Primary总线,第二块硬盘即Slave位置
3.1.2. hdparm
“ hdparm ”(即硬盘参数)是Linux的命令行程序之一,用于处理磁盘设备和硬盘。借助此命令,可以获得有关硬盘,更改写入间隔,声学管理和DMA设置的统计信息。它还可以设置与驱动器高速缓存,睡眠模式,电源管理,声学管理和DMA设置相关的参数。
3.2. 参数选项
3.2.1. smartctl参数
参数:
-h 帮助信息
-V 版本信息
-i 打印基本信息(磁盘设备号、序列号、固件版本…)
-a 打印磁盘所有的SMART信息
-q TYPE |
指定输出的安静模式。 |
-d TYPE |
指定磁盘的类型。如果没有指定,smartctl会根据磁盘的名字来猜测磁盘类型。 |
-T TYPE |
指定当发生错误时,smartctl的容忍程度,是否继续运行。 |
-b TYPE |
指定当发生校验错误时,smartctl的动作。 |
-r TYPE |
smartmontools开发人员相关。 |
-n POWERMODE |
指定当磁盘处于节能模式时,smartctl是否继续检查,默认是不检查。 |
3.2.2. hdparm参数
参数选项 |
说明 |
-a |
<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。 |
-A |
<0或1> 启动或关闭读取文件时的快取功能。 |
-c |
<I/O模式> 设定IDE32位I/O模式。 |
-C |
检测IDE硬盘的电源管理模式。 |
-d |
<0或1> 设定磁盘的DMA模式。 |
-f |
将内存缓冲区的数据写入硬盘,并清楚缓冲区。 |
-g |
显示硬盘的磁轨,磁头,磁区等参数。 |
-h |
显示帮助。 |
-i |
显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。 |
-I |
直接读取硬盘所提供的硬件规格信息。 |
-k |
<0或1> 重设硬盘时,保留-dmu参数的设定。 |
-K |
<0或1> 重设硬盘时,保留-APSWXZ参数的设定。 |
-m |
<磁区数> 设定硬盘多重分区存取的分区数。 |
-n |
<0或1> 忽略硬盘写入时所发生的错误。 |
-p |
<PIO模式> 设定硬盘的PIO模式。 |
-P |
<磁区数> 设定硬盘内部快取的分区数。 |
-q |
在执行后续的参数时,不在屏幕上显示任何信息。 |
-r |
<0或1> 设定硬盘的读写模式。 |
-S |
<时间> 设定硬盘进入省电模式前的等待时间。 |
-t |
评估硬盘的读取效率。 -T 评估硬盘快取的读取效率。 |
-u |
<0或1>在硬盘存取时,允许其他中断要求同时执行。-v 显示硬盘的相关设定。 |
-W |
<0或1> 设定硬盘的写入快取。 -X<传输模式> 设定硬盘的传输模式。 |
-y |
使IDE硬盘进入省电模式。 -Y 使IDE硬盘进入睡眠模式。 |
-Z |
关闭某些Seagate硬盘的自动省电功能。 |
3.3. 应用
查看磁盘厂家型号及序列号:
smartctl -i /dev/sda |egrep 'Model Family|Device Model|Serial Number'
或者
hdparm -i /dev/sda |grep Model
4. 查看声卡、网卡、显卡、USB控制器型号信息
4.1. lspci简介
PCI是Peripheral Component Interconnect(外围设备互联)的简称,普遍使用在桌面及更大型的计算机上的外设总线。PCI架构被设计为ISA标准的替代品,它有三个主要目标:获得在计算机和外设之间传输数据时更好的性能;尽可能的平台无关;简化往系统中添加和删除外设的工作。lspci命令就是用来显示所有pci设备的信息。
4.2. lspci参数选项
-n:以数字方式显示PCI厂商和设备代码;
-t:以树状结构显示PCI设备的层次关系,包括所有的总线、桥、设备以及它们之间的联接;
-b:以总线为中心的视图;
-d:仅显示给定厂商和设备的信息;
-s:仅显示指定总线、插槽上的设备和设备上的功能块信息;
-i:指定PCI编号列表文件,而不使用默认的文件;
-m:以机器可读方式显示PCI设备信息.
4.3. 应用
1、查看声卡设备型号信息:lspci |grep -i audio
2、查看网卡设备型号信息:lspci |grep -i Ethernet
3、查看显卡设备型号信息:lspci |grep -i vga
4、查看USB控制器参数信息:lspci|grep -i usb