文章首發於【博客園-陳樹義】,點擊跳轉到原文如何快速查看服務器配置信息?
作為一個開發,與服務器打交道的時間肯定不少,很多時候也需要了解一下服務器的配置信息。在 Windows 系統上,我們可以通過「魯大師」很輕松地查詢到電腦的配置信息,那服務器上如何查詢到 CPU、內存、主板、硬盤等信息呢?
與「魯大師」一樣,在 Linux 上有這樣一款軟件能讓你快速查詢服務器的配置信息,非常方便。它就是——「Inxi」。
什么是Inxi
Inxi是一個可以獲取完整的系統和硬件詳情信息的命令行工具,內容包括:
- 硬件
- CPU
- 磁盤驅動器
- Xorg
- 桌面環境
- 內核
- GCC版本
- 進程
- 內存占用
- 和其他有用的信息
通過 Inxi 我們可以快速地查詢到我們所需要的很多服務器信息。
如何安裝?
按照網絡上一些資料,我直接使用了 yum install inxi 命令進行了安裝,但是提示:
No package inxi avaiable
這提示讓我很困惑,於是我直接到 Inxi 官網尋找信息。皇天不負有心人,終於找到了對應的安裝提示頁面:

根據提示,你首先需要安裝「latest epel-release rpm」,之后再安裝「inxi」。
這就是直接運行yum install inxi會出錯的原因。
於是,按照提示,首先到 Index of /pub/epel/7/x86_64/Packages/e 搜索下載 epel-release-7-11.noarch.rpm 文件。
之后運行 rpm 命令安裝:
rpm -Uvh epel-release-7-11.noarch.rpm
最后再運行 yum 安裝命令:
yum install inxi
最后輸入inxi -F命令即可查看到服務器的很多配置信息:
System: Host: sk Kernel: 3.13.0-45-generic x86_64 (64 bit) Desktop: LXDE (Openbox 3.5.2) Distro: Ubuntu 14.04 trusty
Machine: System: Dell (portable) product: Inspiron N5050
Mobo: Dell model: 01HXXJ version: A05 Bios: Dell version: A05 date: 08/03/2012
CPU: Dual core Intel Core i3-2350M CPU (-HT-MCP-) cache: 3072 KB flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx)
Clock Speeds: 1: 800.00 MHz 2: 1000.00 MHz 3: 800.00 MHz 4: 800.00 MHz
Graphics: Card: Intel 2nd Generation Core Processor Family Integrated Graphics Controller
X.Org: 1.15.1 drivers: intel (unloaded: fbdev,vesa) Resolution: 1366x768@60.0hz
GLX Renderer: Mesa DRI Intel Sandybridge Mobile GLX Version: 3.0 Mesa 10.3.0
Audio: Card: Intel 6 Series/C200 Series Family High Definition Audio Controller driver: snd_hda_intel
Sound: Advanced Linux Sound Architecture ver: k3.13.0-45-generic
Network: Card-1: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) driver: ath9k
IF: wlan0 state: up mac:
Card-2: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller driver: r8169
IF: eth0 state: down mac:
Drives: HDD Total Size: 500.1GB (52.5% used) 1: id: /dev/sda model: ST9500325AS size: 500.1GB
Partition: ID: / size: 455G used: 245G (57%) fs: ext4 ID: /boot size: 236M used: 159M (72%) fs: ext2
ID: swap-1 size: 4.19GB used: 0.00GB (0%) fs: swap
RAID: No RAID devices detected - /proc/mdstat and md_mod kernel raid module present
Sensors: System Temperatures: cpu: 64.5C mobo: N/A
Fan Speeds (in rpm): cpu: N/A
Info: Processes: 186 Uptime: 6:52 Memory: 1547.2/3861.3MB Client: Shell (bash) inxi: 1.9.17
提示:查詢某些系統配置信息需要 root 權限,所以 inxi 命令需要在 root 用戶下運行或具有 sudo 權限。
如何使用
除了使用inxi -F命令一次性列出每一種硬件的信息之外,你還可以單獨查詢服務器某個硬件的信息,如只查詢硬盤或內存信息。
- inxi :獲取系統概況信息
- inxi -A :獲取音頻信息
- inxi -G :獲取顯卡信息
- inxi -D :獲取硬盤信息
- inxi -M :獲取BIOS和主板信息
如果覺得上面列出的信息都滿足不了你的需求,那你可以使用inxi —help查詢更多的可選項,相信一定可以找到你需要的。
其他方式
雖然通過安裝 inxi 可以方便地查詢到很多信息,並且列出的信息也非常多,於是想着自己直接寫一個腳本,列出一些自己需要的信息即可。雖然自己寫一個腳本可以直接運行,不用安裝,但缺點就是不同平台服務器上會有兼容問題。所以我寫的腳本可能只在 CentOS 7 系統上正常運行,如果大家有時間可以在該腳本基礎上進行修改,補充不同系統平台的查詢腳本,造福大家。
# 服務器型號
dmidecode | grep "Product" > server.temp.info
serverModelInfo="服務器型號:"
while read lineStr
do
temp=`echo ${lineStr##*:}`
serverModelInfo="${serverModelInfo}${temp} "
done < server.temp.info
# 操作系統
os=`cat /etc/centos-release`
osInfo="操作系統:${os}"
# 處理器
cpuNameInfo=`cat /proc/cpuinfo | grep "model name" | uniq`
cpuCount=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
cpuCoreCount=`cat /proc/cpuinfo| grep "cpu cores"| uniq`
cpuCoreCount=`echo ${cpuCoreCount##*:}`
maxThreadCount=`cat /proc/cpuinfo |grep "processor"|wc -l`
cpuMHZ=`cat /proc/cpuinfo |grep MHz|uniq`
cpuBit=`getconf LONG_BIT`
cpuNameInfo=`echo ${cpuNameInfo##*:}`
cpuNameInfo="處理器:${cpuNameInfo}(${cpuCount}路${cpuCoreCount}核 最多${maxThreadCount}個線程 ${cpuBit}位處理器)"
# 主板
boradNameStr=`dmidecode -t 2 | grep "Product Name" | uniq`
boardName=`echo ${boradNameStr##*:}`
boardNameInfo="主板:${boardName}"
# 內存
# Memory
memStr=`dmidecode -t 17 | grep "Size:.*MB" | uniq`
memSizeStr=`echo ${memStr##*:}`
memSize=`echo ${memSizeStr} | tr -cd "[0-9]"`
memSizeInGB=`expr ${memSize} / 1024`
# MaxMemory
maxMemStr=`dmidecode -t 16 | grep Maximum | uniq`
maxMem=`echo ${maxMemStr##*:} | sed s/[[:space:]]//g`
memoryInfo="內存:${memSizeInGB}GB(最大內存${maxMem})"
# 硬盤
lsblk -o name,type,size,kname,fstype,MODEL,size | grep disk > server.temp.info
diskCountStr=`lsblk -o TYPE | grep -i disk | wc -l`
hardDiskInfo="硬盤:${diskCountStr}個硬盤 "
while read lineStr
do
arr=(${lineStr})
info="硬盤${arr[0]}(${arr[2]}) "
hardDiskInfo="${hardDiskInfo}${info} "
done < server.temp.info
# 網卡
networkNameStr=`lspci | grep Ethernet | uniq`
networkName=`echo ${networkNameStr##*:}`
networkNameInfo="網卡:${networkName}"
# 概況
serverTotal="\n ${serverModelInfo}\n ${osInfo}\n ${cpuNameInfo}\n ${boardNameInfo}\n ${memoryInfo}\n ${hardDiskInfo}\n ${networkNameInfo}\n"
echo -e "${serverTotal}" > GetServerInfo.txt
echo -e "${serverTotal}"
rm -f server.temp.info
在 CentOS 7 服務器上運行可得到基本的系統信息:
服務器型號:VMware Virtual Platform 440BX Desktop Reference Platform
操作系統:CentOS Linux release 7.4.1708 (Core)
處理器:Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz(2路2核 最多4個線程 64位處理器)
主板:440BX Desktop Reference Platform
內存:8GB(最大內存1TB)
硬盤:3個硬盤 硬盤fd0(4K) 硬盤sda(50G) 硬盤sdb(50G)
網卡:VMware VMXNET3 Ethernet Controller (rev 01)
本文完。
