linux查看系统硬件信息
服务器硬件数据的收集
回到顶部你的内存需要 DDR3 还是 DDR4 呢?你 的主机能不能吃到 8G 以上的单条内存? 这就需要检查一下系统啰!不想拆机壳吧?那怎办?用软 件去查啦!此外,磁盘会不会出问题?你怎么知道哪一颗磁盘出问题了?
这就重要啦!20.2.1 以系统内建 dmidecode 解析硬件配备 系统有个名为 dmidecode 的软件,这个软件挺有趣的,它可以解析 CPU 型号、主板型号与内存相 关的型号等等~ 相当的有帮助!
尤其是在升级配备上面!现在让我们来查一查鸟哥的虚拟机里头有 啥东西吧!
[root@study ~]# dmidecode -t type选项与参数:
详细的 type 项目请 man dmidecode 查询更多的数据,这里仅列出比较常用的项目:
1 :详细的系统数据,含主板的型号与硬件的基础数据等范例一:秀出整个系统的硬件信息,例如主板型号等等
4 :CPU 的相关资料,包括倍频、外频、核心数、核心绪数等
9 :系统的相关插槽格式,包括 PCI, PCI-E 等等的插槽规格说明
17:每一个内存插槽的规格,若内有内存,则列出该内存的容量与型号
[root@study ~]# dmidecode -t 1 # dmidecode 2.12 SMBIOS 2.4 present. Handle 0x0100, DMI type 1, 27 bytes System Information Manufacturer: Red Hat Product Name: KVM Version: RHEL 6.6.0 PC Serial Number: Not Specified UUID: AA3CB5D1-4F42-45F7-8DBF-575445D3887F Wake-up Type: Power Switch SKU Number: Not Specified Family: Red Hat Enterprise Linux范例二:那内存相关的数据呢?
[root@study ~]# dmidecode -t 17 # dmidecode 2.12 SMBIOS 2.4 present. Handle 0x1100, DMI type 17, 21 bytes Memory Device Array Handle: 0x1000 Error Information Handle: 0x0000 Total Width: 64 bits Data Width: 64 bits Size: 3072 MB Form Factor: DIMMSet: None Locator: DIMM 0 Bank Locator: Not Specified Type: RAM Type Detail: None因为我们的系统是虚拟机,否则的话,你的主板型号、每一只安插的内存容量等等,都会被列出来在 上述的画面中喔! 这样可以让你了解系统的所有主要硬件配备为何!
因为某些缘故,鸟哥获得了一部机架式的服务器,不过该服务器就是内存不够。又因 Tips 为某些缘故有朋友要送 ECC 的低电压内存给鸟哥!太开心了! 不过为了担心内存与主板不兼容,所以就使用了 dmidecode 去查主板型号,再到原厂网站查询相关主板规格,这才确认可以使用!感谢各位亲爱的朋友啊!
!
硬件资源的收集与分析
回到顶部而核心所侦测到的各 项硬件装置,后来就会被记录在 /proc 与 /sys 当中了。 包括 /proc/cpuinfo, /proc/partitions, /proc/interrupts 等等。 更多的 /proc 内容介绍,先回到第十六章的程序管理瞧一瞧先!
其实核心所侦测到的硬件可能并非完全正确喔!因为他仅是『使用最适当的模块来驱 Tips 动这个硬件』而已, 所以有时候难免会误判啦 (虽然机率非常之低)!那你可能想要以最新最正确的模块来驱动你 的硬件, 此时,重新编译核心是一条可以达成的道路。不过,现在的 Linux 系统并没有很建议你一定要重新编译 核心就是了。
那除了直接呼叫出 /proc 底下的文件内容之外,其实 Linux 有提供几个简单的指令来将核心所侦测 到的硬件叫出来的~ 常见的指令有底下这些:
gdisk:第七章曾经谈过,可以使用 gdisk -l 将分区表列出;是本章新谈到的指令,尤其如果你想要知道主板与各周边相关设备时,那个 lspci 真 是不可多得的好工具!而如果你想要知道目前 USB 插槽的使用情况以及侦测到的 USB 装置, 那 个 lsusb 则好用到爆!至于 iostat 则是一个实时分析软件,与 vmstat 有异曲同工之妙!
dmesg:第十六章谈过, 观察核心运作过程当中所显示的各项讯息记录;
vmstat:第十六章谈过,可分析系统 (CPU/RAM/IO) 目前的状态;
lspci:列出整个 PC 系统的 PCI 接口装置!很有用的指令;
lsusb:列出目前系统上面各个 USB 端口口的状态,与连接的 USB 装置;
iostat:与 vmstat 类似,可实时列出整个 CPU 与接口设备的 Input/Output 状态。lspci, lsusb, iostat
基本上,想要知道你 Linux 主机的硬件配备,最好的方法还是直接拆开机壳去察看上面的信息 (这 也是为何第零章会谈计概啊)! 如果环境因素导致您无法直接拆开主机的话,那么直接 lspci 是很棒 的一的方法:
lspci
回到顶部[root@study ~]# lspci [-vvn]选项与参数:
-v :显示更多的 PCI 接口装置的详细信息;范例一:查阅您系统内的 PCI 总线相关装置:
-vv :比 -v 还要更详细的细部信息;
-n :直接观察 PCI 的 ID 而不是厂商名称
[root@study ~]# lspci 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] 00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01) 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:02.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev 04) 00:03.0 Ethernet controller: Red Hat, Inc Virtio network device 00:04.0 SCSI storage controller: Red Hat, Inc Virtio block device 00:05.0 RAM memory: Red Hat, Inc Virtio memory balloon 00:06.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 01) 00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) 00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) 00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) 00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)# 不必加任何的参数,就能够显示出目前主机上面的各个 PCI 接口的装置呢!
不必加上任何选项,就能够显示出目前的硬件配备为何。上面就是鸟哥的测试机所使用的主机配备。
包括使用 Intel 芯片的仿真主板、南桥使用 ICH9 的控制芯片、附挂 QXL 的显示适配器、使用虚 拟化的 Virtio 网络卡等等。 您瞧瞧!很清楚,不是嘛。
如果你还想要了解某个设备的详细信息时,可以加上 -v 或 -vv 来显示更多的信息喔!
举例来说, 鸟哥想要知道那个以太网络卡更详细的信息时,可以使用如下的选项来处理:
[root@study ~]# lspci -s 00:03.0 -vv-s后面接的那个怪东西每个设备的总线、插槽与相关函数功能啦!那个是我们硬件侦测所得到的数 据啰! 你可以对照底下这个文件来了解该串数据的意义:
/usr/share/hwdata/pci.ids
其实那个就是 PCI 的标准 ID 与厂牌名称的对应表啦!此外,刚刚我们使用 lspci 时,其实所有的 数据都是由 /proc/bus/pci/ 目录下的数据所取出的呢!了解了吧! ^_^!
不过,由于硬件的发展太过 迅速,所以你的 pci.ids 文件可能会落伍了~那怎办? 没关系~可以使用底下的方式来在线更新你 的对应档:
[root@study ~]# update-pciids
lsusb
回到顶部这个指令也是很简单的!
[root@study ~]# lsusb [-t]选项与参数: -t :使用类似树状目录来显示各个 USB 端口口的相关性 范例一:列出目前鸟哥的测试用主机 USB 各端口口状态
[root@study ~]# lsusb Bus 002 Device 002: ID 0627:0001 Adomax Technology Co., Ltd Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub# 如上所示,鸟哥的主机在 Bus 002 有接了一个设备,
# 该设备的 ID 是 0627:0001,对应的厂商与产品为 Adomax 的设备。
确实非常清楚吧!其中比较有趣的就属那个 ID 号码与厂商型号对照了!那也是写入在 /usr/share/hwdata/pci.ids 的东西,你也可以自行去查询一下喔!
iostat
回到顶部Tips 默认 CentOS 并没有安装这个软件,因此你必须要先安装他才行!如果你已经有网络 了, 那么使用『 yum install sysstat 』先来安装此软件吧!否则无法进行如下的测试喔!
[root@study ~]# iostat [-c|-d] [-k|-m] [-t] [间隔秒数][侦测次数] 选项与参数:
-c :仅显示 CPU 的状态;范例一:显示一下目前整个系统的 CPU 与储存设备的状态
-d :仅显示储存设备的状态,不可与 -c 一起用;
-k :默认显示的是 block ,这里可以改成 K bytes 的大小来显示;
-m :与 -k 类似,只是以 MB 的单位来显示结果。
-t :显示日期出来;
[root@study ~]# iostat Linux 3.10.0-229.el7.x86_64 (study.centos.vbird) 09/02/2015 avg-cpu: %steal %idle 0.01 99.88 %user 0.08 Device: %nice %system %iowait 0.01 0.02 0.00 _x86_64_ tps kB_read/s kB_wrtn/s kB_read kB_wrtn vda 0.46 5.42 3.16 973670 568007 scd0 0.00 0.00 0.00 154 0 sda 0.01 0.03 0.00 4826 0 dm-0 0.23 4.59 3.09 825092 555621 (4 CPU)# 瞧!上面数据总共分为上下两部分,上半部显示的是 CPU 的当下信息;
# 下面数据则是显示储存装置包括 /dev/vda 的相关数据,他的数据意义:
# tps
:平均每秒钟的传送次数!与数据传输『次数』有关,非容量!
# kB_read/s :开机到现在平均的读取单位;
# kB_wrtn/s :开机到现在平均的写入单位;
# kB_read :开机到现在,总共读出来的文件单位;
# kB_wrtn :开机到现在,总共写入的文件单位;
范例二:仅针对 vda ,每两秒钟侦测一次,并且共侦测三次储存装置
[root@study ~]# iostat -d 2 3 vda Linux 3.10.0-229.el7.x86_64 (study.centos.vbird) Device: vda Device: vda Device: vda 09/02/2015 _x86_64_ tps kB_read/s kB_wrtn/s kB_read kB_wrtn 0.46 5.41 3.16 973682 568148 tps kB_read/s kB_wrtn/s kB_read kB_wrtn 1.00 0.00 0.50 0 1 tps kB_read/s kB_wrtn/s kB_read kB_wrtn 0.00 0.00 0.00 0 0 (4 CPU)# 仔细看一下,如果是有侦测次数的情况,那么第一次显示的是『从开机到现在的数据』,
# 第二次以后所显示的数据则代表两次侦测之间的系统传输值!举例来说,上面的信息中,
# 第二次显示的数据,则是两秒钟内(本案例)系统的总传输量与平均值。透过 lspci 及 iostat 可以约略的了解到目前系统的状态还有目前的主机硬件数据呢!
了解磁盘的健康状态
回到顶部SMART 其实是『 Self-Monitoring, Analysis and Reporting Technology System 』的缩写,主要用来监 测目前常见的 ATA 与 SCSI 界面的磁盘, 只是,要被监测的磁盘也必须要支持 SMART 的协议 才行!否则 smartd 就无法去下达指令,让磁盘进行自我健康检查~ 比较可惜的是,我们虚拟机的 磁盘格式并不支持 smartd,所以无法用来作为测试!不过刚刚好鸟哥还有另外一颗用作 IDE 界面的 2G 磁盘, 这个就能够用来作为测试了! (/dev/sda)!
smartd 提供一只指令名为 smartctl,这个指令功能非常多!不过我们底下只想要介绍数个基本的操作, 让各位了解一下如何确认你的磁盘是好是坏!
# 1. 用 smartctl 来显示完整的 /dev/sda 的信息
[root@study ~]# smartctl -a /dev/sda smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-229.el7.x86_64] (local build) Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org # 首先来输出一下这部磁盘的整体信息状况!包括制造商、序号、格式、SMART 支持度等等!不过要特别强调的是,因为进行磁盘自我检查时,可能磁盘的 I/O 状态会比较频繁,因此不建议在 系统忙碌的时候进行喔! 否则系统的效能是可能会被影响的哩!要注意!要注意!
=== START OF INFORMATION SECTION === Device Model: QEMU HARDDISK Serial Number: QM00002 Firmware Version: 0.12.1 User Capacity: 2,148,073,472 bytes [2.14 GB] Sector Size: 512 bytes logical/physical Device is: Not in smartctl database [for details use: -P showall] ATA Version is: ATA/ATAPI-7, ATA/ATAPI-5 published, ANSI NCITS 340-2000 Local Time is: Wed Sep 2 18:10:38 2015 CST SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED # 接下来则是一堆基础说明!鸟哥这里先略过这段资料喔! General SMART Values: Offline data collection status: (0x82) Offline data collection activity was completed without error. Auto Offline Data Collection: Enabled. .....(中间省略).....# 再来则是有没有曾经发生过磁盘错乱的问题登录! SMART Error Log Version: 1 No Errors Logged # 当你下达过磁盘自我检测的过程,就会被记录在这里了! SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 4660 - # 2 Short offline Completed without error 00% 4660 - # 2. 命令磁盘进行一次自我检测的动作,然后再次观察磁盘状态! [root@study ~]# smartctl -t short /dev/sda [root@study ~]# smartctl -a /dev/sda .....(前面省略)..... # 底下会多出一个第三笔的测试信息!看一下 Status 的状态,没有问题就是好消息! SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 4660 - # 2 Short offline Completed without error 00% 4660 - # 3 Short offline Completed without error 00% 4660 -
ifconfig列出系统中的网卡信息
回到顶部没有任何参数选项,显示当前所有网络状态
peter@peter-VirtualBox:~$ ifconfig显示指定网卡状态:
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.104 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::1db0:20ae:4993:2b5f prefixlen 64 scopeid 0x20 <link>
ether 08:00:27:bd:23:a5 txqueuelen 1000 (Ethernet)
RX packets 89623 bytes 69256556 (69.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 75817 bytes 13227494 (13.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 14740 bytes 1400245 (1.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14740 bytes 1400245 (1.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifconfig eth0关闭eth0:
ifconfig eth0 down开启eth0:
ifconfig eth0 up
Usage:
ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
[add <address>[/<prefixlen>]]
[del <address>[/<prefixlen>]]
[[-]broadcast [<address>]] [[-]pointopoint [<address>]]
[netmask <address>] [dstaddr <address>] [tunnel <address>]
[outfill <NN>] [keepalive <NN>]
[hw <HW>
<address>] [mtu <NN>]
[[-]trailers] [[-]arp] [[-]allmulti]
[multicast] [[-]promisc]
[mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]
[txqueuelen <NN>]
[[-]dynamic]
[up|down] ...
<HW>=Hardware Type.
List of possible hardware types:
loop (Local Loopback) slip (Serial Line IP) cslip (VJ Serial Line IP)
slip6 (6-bit Serial Line IP) cslip6 (VJ 6-bit Serial Line IP) adaptive (Adaptive Serial Line IP)
ash (Ash) ether (Ethernet) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) rose (AMPR ROSE) tunnel (IPIP Tunnel)
ppp (Point-to-Point Protocol) hdlc ((Cisco)-HDLC) lapb (LAPB)
arcnet (ARCnet) dlci (Frame Relay DLCI) frad (Frame Relay Access Device)
sit (IPv6-in-IPv4) fddi (Fiber Distributed Data Interface) hippi (HIPPI)
irda (IrLAP) ec (Econet) x25 (generic X.25)
eui64 (Generic EUI-64)
<AF>=Address family. Default: inet
List of possible address families:
unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6)
ax25 (AMPR AX.25) netrom (AMPR NET/ROM) rose (AMPR ROSE)
ipx (Novell IPX) ddp (Appletalk DDP) ec (Econet)
ash (Ash) x25 (CCITT X.25)
ping常用来测试网络连通性
回到顶部
Usage: ping [-aAbBdDfhLnOqrRUvV64] [-c count] [-i interval] [-I interface]
[-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
[-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
[-w deadline] [-W timeout] [hop1 ...] destination
Usage: ping -6 [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
[-l preload] [-m mark] [-M pmtudisc_option]
[-N nodeinfo_option] [-p pattern] [-Q tclass] [-s packetsize]
[-S sndbuf] [-t ttl] [-T timestamp_option] [-w deadline]
[-W timeout] destination
相关阅读:
linux基础
centos安装
linux mint(ubuntu)安装
什么是linux
linux学习方法建议和学习路线图
本文由initroot编辑整理,转载请注明www.initroot.com
100次点赞
100次阅读