当前位置:首页>Linux>Linux杂记 -- 获取系统信息

Linux杂记 -- 获取系统信息

  • 2026-09-11 02:24:57
Linux杂记 -- 获取系统信息

收集用于获取系统相关信息的命令。

6.1 CPU、内存、网络和磁盘(I/O 操作)的统计信息

要获取 Linux 系统主要组件的常规统计信息,stat命令族非常有用。

CPU要获取与处理器相关的统计信息,你可以使用mpstat命令,但使用一些选项会提供更好的可见性:

$ mpstat 2 10

内存我们都知道free命令用于显示(剩余)RAM 的数量,但要查看包括 I/O 操作在内的所有统计信息:

$ vmstat 2 10

磁盘要实时获取磁盘操作的一般信息,你可以使用:

$ iostat-k2

网络要能够查看网络服务发生了什么,你可以使用netstat:

$ netstat -ntlp  # 开放的 TCP 套接字$ netstat -nulp  # 开放的 UDP 套接字$ netstat -nxlp  # 开放的 Unix 套接字

但你可能会发现有用的监控工具来实时查看网络流量:

$ sudo iftop

可选要实时生成与所有组件的 I/O 操作相关的统计信息,你可以使用dstat。该工具是vmstat、iostat和ifstat的多功能替代品。

6.2 使用 lscpu 和 lshw 等工具

通过使用lscpu等工具,可以轻松获取 CPU 信息:

$ lscpuArchitecture:          x86_64CPU op-mode(s):        32-bit, 64-bitByte Order:            Little EndianCPU(s):                4On-line CPU(s) list:   0-3Thread(s) per core:    1Core(s) per socket:    4Socket(s):             1NUMA node(s):          1Vendor ID:             GenuineIntelCPU family:            6Model:                 23Stepping:              10CPU MHz:               1998.000BogoMIPS:              5303.14Virtualization:        VT-xL1d cache:             32KL1i cache:             32KL2 cache:              2048KNUMA node0 CPU(s):     0-3

使用 lshw 工具

$ lshw | grep cpu     *-cpu                            bus info: cpu@0          capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp x86-64 constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch pti fsgsbase bmi1 avx2 bmi2 invpcid rdseed adx clflushopt arat md_clear flush_l1d arch_capabilities

6.3 列出硬件

Ubuntu:

lshw是一个小型工具,用于提取机器硬件配置的详细信息。它可以报告确切的内存配置、固件版本、主板配置、CPU 版本和速度、缓存配置、总线速度等。

$ sudo lshw | less    (或 more)$ sudo lshw -html > myhardware.html$ sudo lshw -xml > myhardware.xml

显示 PCI 信息

$ lspci -tv

查看 USB 信息

$ lsusb -tv

显示 BIOS 信息

$ dmidecode -q| less

查看特定磁盘的详细信息(示例中为磁盘 sda)

$ hdparm -i /dev/sda

一些额外的实用程序/命令将有助于收集一些额外信息:

$ smartctl -A /dev/sda | grep Power_On_Hours  # 此磁盘(系统)总共通电多长时间$ hdparm -tT /dev/sda                         # 对磁盘 sda 进行读取速度测试$ badblocks -s /dev/sda                       # 测试磁盘 sda 上是否有坏块

6.4 查找 CPU 型号/速度信息

Ubuntu:

$ cat /proc/cpuinfo

示例输出:

统计处理器数量(包括核心):

$ grep -c processor /proc/cpuinfo

6.5 进程监控和信息收集

总体而言,你有两种方式来监控 Linux 主机上的进程。

静态监控

最广泛使用的命令是ps(即进程状态)命令,用于提供有关当前运行进程的信息,包括它们的进程标识号。

以下是收集特定信息的一些有用选项:

以层次结构列出进程

$ ps -e -o pid,args --forest

按 %cpu 使用率列出进程

$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'

按内存(KB)列出进程

$ ps -e -orss=,args= | sort -b -k1,1n | ps -T

列出特定进程的所有线程(示例中为 "firefox-bin" 进程)

$ ps -C firefox-bin -L -o pid,tid,pcpu,state

找到特定进程后,你可以使用lsof收集相关信息,以列出该进程 ID 打开的路径:

$ lsof -p $$

或基于路径找出打开指定路径的进程列表:

$ lsof ~

交互式监控

动态监控最常用的工具是:

$ top

这主要是默认命令,有大量选项可用于实时过滤和显示信息(与ps相比)。

还有一些更高级的选项可以考虑安装,作为top的替代品:

$ htop -d 5

或

$ atop

它可以将所有活动记录到日志文件中(默认情况下,atop每 600 秒记录一次所有活动)。

在这个列表中,还有一些专门的命令,如iotop或iftop:

$ sudo iotop

最新文章

随机文章