作为一个开发,与服务器打交道的时间肯定不少,很多时候也需要了解一下服务器的配置信息。在 Windows 系统上,我们可以通过「鲁大师」很轻松地查询到电脑的配置信息,那服务器上如何查询到 CPU、内存、主板、硬盘等信息呢?
与「鲁大师」一样,在 Linux 上有这样一款软件能让你快速查询服务器的配置信息,非常方便。它就是——「Inxi」。
Inxi是一个可以获取完整的系统和硬件详情信息的命令行工具,内容包括:
通过 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 —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)
本文完。
来源: http://www.cnblogs.com/chanshuyi/p/how_to_look_up_server_info.html