Evgeny Asked: 2009-08-01 10:18:48 +0800 CST2009-08-01 10:18:48 +0800 CST 2009-08-01 10:18:48 +0800 CST 如何在 Linux 机器上找到有关硬件的详细信息? 772 -ie - 如何在命令行中获取硬件组件的完整列表(在没有窗口系统的机器上) 谢谢你。 hardware linux centos 13 个回答 Voted Best Answer Keith 2009-08-01T10:22:54+08:002009-08-01T10:22:54+08:00 lspci对于 pci 卡,lsusb对于 USB,lshw适用于基于 debian 的发行版,这是获取其他硬件规格的方法列表, Chad Huneycutt 2009-08-01T10:27:44+08:002009-08-01T10:27:44+08:00 如果有的话,dmidecode就派上用场了。特别是在戴尔、惠普、IBM 硬件上,他们费心将相关硬件信息编程到各种寄存器中。 baumgart 2009-08-01T10:27:22+08:002009-08-01T10:27:22+08:00 lspci是列出系统硬件的一个很好的实用程序。(无论如何,PCI 总线上的任何东西。) cat /proc/cpuinfo- 显示 CPU 信息 cat /proc/meminfo- 显示内存信息 dmesg(或cat /var/log/dmesg)包含一些信息,不一定是所有信息。 如果你有一个 RedHat/CentOS 系统,你可以sosreport用来收集很多信息,虽然我不知道它是否列出了所有的硬件信息。 这些是开始查找所需信息的好地方。 Michael Shaw 2009-08-01T10:24:55+08:002009-08-01T10:24:55+08:00 /proc 文件系统将为您提供所需的信息...但我不知道您将如何获得它是一个简单的地方。 'cat /proc/cpuinfo' 会告诉你你的 CPU 'cat /proc/devices' 会告诉你一些关于块设备的有限信息。'ifconfig -a' 将告诉您有关网络连接的信息 其他人将能够告诉您更多设备。您是否正在对特定设备进行故障排除?如果是这样,您将在提出特定问题时获得更好的帮助。 hackinjack 2012-05-18T10:37:27+08:002012-05-18T10:37:27+08:00 inxi 将显示几乎所有内容,运行时不带短格式参数,但是选项很多,运行 inxi -h 来查看它们 inxi是项目主页描述的“全功能信息脚本”:https ://github.com/smxi/inxi 以下是有关如何在 Ubuntu 上安装它的信息:https ://askubuntu.com/questions/284635/inxi-installation-on-ubuntu Rajat 2009-08-21T10:17:35+08:002009-08-21T10:17:35+08:00 下面的代码你可以使用 vi 复制 #!/bin/bash a=1; c=0 a=1; c=0 # Gather system information, can e.g. be sent to | mail in a cronjob f_() { while read l; do echo $l; done < $f ; } # f_() { while read l; do echo $l; done < $f ; } # TODO # ---- # * Netstat output # * Memory/swap information # * ifconfig information # * Make output dependent on argv # * md5sum checks (done) # * Keep previeous values and compare # * How to # * chmod a+x sysinfo.sh # * ./sysinfo.sh ####################### DO NOT EDIT UNDER THIS LINE ########################### siheader() { echo "================================================================" echo -e "* System statistics for: \t`hostname`.`dnsdomainname`" echo -e "* Generated on: \t\t`date`" echo -e "* Running as: \t\t\t`whoami`" echo } fuptime() { upSeconds=$(cat /proc/uptime | tr "." " " | awk '{print $1}') secs=$((${upSeconds}%60)) mins=$((${upSeconds}/60%60)) hours=$((${upSeconds}/3600/24)) days=$((${upSeconds}/86400)) if [ "${days}" -ne "0" ] then echo -n "${days} days, " fi echo "`printf '%02d' ${hours}`:`printf '%02d' ${mins}`:`printf '%02d' ${secs}`" } siuptime() { echo "=================== Uptime =====================================" echo -e "* Uptime: \t\t\t`fuptime`" if [ -x /usr/bin/uprecords ]; then echo -e "* High score: \t\t\t`uprecords | tail -n1 | cut -d'|' -f1 | cut -d'n' -f3 | sed 's/^[[:blank:]]*//'`" fi echo -e "* Load average: \t\t`cat /proc/loadavg | head -c14`" echo } fw () { OFS=${IFS} IFS=$'\n' CNT=$(echo `w | wc -l`-1 | bc) w | tail -n ${CNT} | while read -r a; do echo -e "\t${a}" done IFS=${OFS} } siusers() { echo "=================== Users ======================================" echo -e "* Active users: \t\t`who | wc -l`" echo "* User information" fw echo } fpstree() { OFS=${IFS} IFS=$'\n' pstree | while read -r a; do echo -e "\t${a}" done IFS=${OFS} } fcomms() { ps -eo comm | sort | uniq | grep -v ^COMMAND | column echo IFS=${OFS} } fprocs() { echo `TERM=Linux top -n1 -b | grep "Tasks" | awk '{print $4,$6,$8,$10}'` echo -e "==================================Tasks process and memory utilization=============================\n" echo "`top -n1 -b`" } sitasks() { echo "=================== Tasks ======================================" echo -e "* Number of running tasks: \t$(echo `ps ax | wc -l` - 1 | bc)" #This screws up the email #echo "* PS Tree:" #fpstree echo "* Running programs:" fcomms echo -e "* CPU load: \t\t\t`TERM=linux top -n2 -b | grep 'Cpu' | tail -n1 | awk '{print $2+$4+$6}'`%" PROCS=`fprocs` echo "* Process state:" echo -e "\tRunning: \t\t`echo ${PROCS} | awk '{print $1}'`" echo -e "\tSleeping: \t\t`echo ${PROCS} | awk '{print $2}'`" echo -e "\tZombie: \t\t`echo ${PROCS} | awk '{print $3}'`" echo -e "\tStopped: \t\t`echo ${PROCS} | awk '{print $4}'`" echo } froute() { OFS=${IFS} IFS=$'\n' CNT=$(echo `/sbin/route | wc -l` - 1 | bc) /sbin/route | tail -n ${CNT} | while read -r a; do echo -e "\t${a}" done IFS=${OFS} } sinetwork() { echo "=================== Networking ================================" echo "* Routing table:" froute echo } simemory() { echo "=================== Memory ====================================" RAMTOTAL=`echo $(($(cat /proc/meminfo | grep MemTotal | awk '{print $2}')/1024))` echo "* Ram:\t\t\t free of ${RAMTOTAL}Mb" } sidiskstats() { echo "=================== Hard Disc =================================" echo "* Disk Information:" OFS=${IFS} IFS=$'\n' df -h | grep -v ^none | while read -r a; do echo -e "\t${a}" done IFS=${OFS} echo echo "* Mounts:" OFS=${IFS} IFS=$'\n' mount | while read -r a; do echo -e "\t${a}" done IFS=${OFS} echo } simd5() { if [ ! -e md5sums.lst ]; then return fi echo "=================== MD5Sum Check ==============================" OFS=${IFS} IFS=$'\n' echo "* Checking MD5 Sums" cat md5sums.lst | grep "^/" | while read -r a; do F=`echo ${a} | cut -d':' -f1` S=`echo ${a} | cut -d':' -f2` S2=`md5sum ${F} | cut -d' ' -f1` echo -n -e "\t${F}: \t\t\t\t" if [ "${S}" = "${S2}" ]; then echo "[OK]" else echo "[INVALID]" fi done IFS=${OFS} echo } ##For finding CPU model, cores and cpuinfo() { echo "=================== CPU Details for Xen ==============================" echo -e "CPU Details: \n`cat /proc/cpuinfo | sed -n '1,/^$/p'`" echo -e "No of Cores: \n`cat /proc/cpuinfo | grep processor | wc -l`" if [ "egrep '(vmx|svm)' /proc/cpuinfo >/dev/null 2>/dev/null" ]; then echo -e "\n===============================================================\nServer supports Full-virtualization" else echo -e "\n===============================================================\nEither server does not support Full-virtualization or it is turned off in BIOS" fi if [ "egrep 'pae' /proc/cpuinfo >/dev/null 2>/dev/null" ]; then echo -e "\n===============================================================\nServer supports Para-virtualization" else echo -e "\n===============================================================\nServer does not support Para-virtualization" fi } ##For disk info diskinfo() { echo "=================== Disk usage ==============================" echo -e "Disk Usage details: \n`df -h`" } ##Distro info distroinfo() { echo "=================== Distro Info ==============================" echo -e "Distro details: \n`lsb_release -a`" echo -e "Kernel details: \n`uname -a`" } ##Distro info deviceinfo() { echo "=================== Device Info ==============================" echo -e "Device details: \n`lspci -v`" echo -e "Kernel details: \n`uname -a`" } summary() { siheader siuptime siusers sitasks sinetwork simemory sidiskstats fprocs simd5 deviceinfo cpuinfo distroinfo echo "===============================================================" echo "* Brought to you by Taashee- http://www.taashee.com" } summary mivk 2012-04-27T09:15:18+08:002012-04-27T09:15:18+08:00 对于硬盘,我使用一个自定义脚本,它将以下输出按摩到一个列表中: cat /proc/partitions cat /proc/mounts parted -m /dev/sdX unit MB print # need to be root for parted # or parted -m -l unit MB print blkid /dev/sdXN alexus 2012-04-27T12:21:32+08:002012-04-27T12:21:32+08:00 总而言之,我想说这是获取有关您的系统信息的良好开端: dmesg - 打印或控制内核环形缓冲区 lspci - 列出所有 PCI 设备 lsusb - 列出 USB 设备 /proc - 进程信息伪文件系统 Niels Basjes 2012-06-06T13:21:25+08:002012-06-06T13:21:25+08:00 我建议检查facter,它以易于在脚本中使用的形式输出大量信息。 http://www.puppetlabs.com/puppet/related-projects/facter/ Sc0rian 2012-06-06T14:27:30+08:002012-06-06T14:27:30+08:00 我真的很喜欢使用“ Facter ”。提供了非常有用的信息的一个很好的列表。
lspci
对于 pci 卡,lsusb
对于 USB,lshw
适用于基于 debian 的发行版,这是获取其他硬件规格的方法列表,如果有的话,
dmidecode
就派上用场了。特别是在戴尔、惠普、IBM 硬件上,他们费心将相关硬件信息编程到各种寄存器中。lspci
是列出系统硬件的一个很好的实用程序。(无论如何,PCI 总线上的任何东西。)cat /proc/cpuinfo
- 显示 CPU 信息cat /proc/meminfo
- 显示内存信息dmesg
(或cat /var/log/dmesg
)包含一些信息,不一定是所有信息。如果你有一个 RedHat/CentOS 系统,你可以
sosreport
用来收集很多信息,虽然我不知道它是否列出了所有的硬件信息。这些是开始查找所需信息的好地方。
/proc 文件系统将为您提供所需的信息...但我不知道您将如何获得它是一个简单的地方。
'cat /proc/cpuinfo' 会告诉你你的 CPU 'cat /proc/devices' 会告诉你一些关于块设备的有限信息。'ifconfig -a' 将告诉您有关网络连接的信息
其他人将能够告诉您更多设备。您是否正在对特定设备进行故障排除?如果是这样,您将在提出特定问题时获得更好的帮助。
inxi 将显示几乎所有内容,运行时不带短格式参数,但是选项很多,运行 inxi -h 来查看它们
inxi
是项目主页描述的“全功能信息脚本”:https ://github.com/smxi/inxi以下是有关如何在 Ubuntu 上安装它的信息:https ://askubuntu.com/questions/284635/inxi-installation-on-ubuntu
下面的代码你可以使用 vi 复制
对于硬盘,我使用一个自定义脚本,它将以下输出按摩到一个列表中:
总而言之,我想说这是获取有关您的系统信息的良好开端:
我建议检查facter,它以易于在脚本中使用的形式输出大量信息。
http://www.puppetlabs.com/puppet/related-projects/facter/
我真的很喜欢使用“ Facter ”。提供了非常有用的信息的一个很好的列表。