Linux-系统信息收集


Linux-系统信息收集

Ax 收集进程信息

和进程管理相关的重要命令是top、ps和pgrep.

a top命令

输出CPU占用最多进程的列表,是动态的。

b ps命令

收集进程信息的重要工具。

ps -f 查看更多信息

ps -axf 打印终端所有进程信息

ps -eo comm,pcpu --sort -pcpu | head 列出占用CPU做多的10个进程

ps -C CMD -o pid= 打印出命令的PID,加入=就可以移除列名

ps -elf --sort -nlwp | head 列出线程数最多的10个进程

ps -eo pid,cmd e | tail -n 3 列出环境变量

c pgrep命令

获得特定命令的进程ID 列表

pgrep CMD

d which、whereis、file、whatis与uptime

which命令用于找出某个命令的位置。

whereis命令不仅返回位置还打印命令手册的位置。

file命令是一个打印文件类型和细节的命令。

whatis命令输出简短的描述信息,信息从命令手册中解析

uptime命令,平均负载的三个值,分别指明了1分钟、5分钟、15分钟的平均值。

Bx 杀死进程以及发送或响应信号

a kill命令

如Ctrl + C、Ctrl + Z 一样,kill命令也会向进程发送信号。trap命令用于接收这样的信号。

kill -l 列出可用的信号

kill 进程ID列表 终止进程,使用空格作为列表的定界符

kill -s SIGNAL PID 向进程发送指定的信号

  • 1 (SIGHUP)对控制进程或终端的终结进行挂起检测
  • 2 (SIGINT)按下Ctrl + C 时发出的信号
  • 9 (SIGKILL)强行杀死进程
  • 15(SIGTERM)默认用于终止进程
  • 20(SIGTSTP) 按下Ctrl + Z 时发出的信号

比如我们要终止一个进程,可以

kill -s SIGKILL PROCESS_ID

or

kill -9 PROCESS_ID

b 相关命令

killall

c 捕捉信号命令

trap 'signal_handler_function_name' SIGNAL LIST

编写一个能响应信号的脚本

#!/bin/bash
# 信号处理
function handler()
{
    echo Hey,received signal : SIGINT
}

echo My  process ID is $$

trap 'handler' SIGINT

while true;
do
    sleep 1
done

按下Ctrl+C后输出的信息。

Cx 采集系统信息

apt-get install neofetch

如果安装不了就下载github的

neofetch download: https://github.com/dylanaraps/neofetch/archive/2.0.2.tar.gz && tar xvfz 2.0.2.tar.gz && cd neofetcth-2.0.2 && make && sudo make install

这个命令还可以通过配置查看更多的东西

系统信息包括主机名、内核版本、Linux发布版本名称、CPU信息、内存信息、磁盘分区信息等。

hostnameuname -n 获取主机名

uname -a 获取内核版本、硬件架构

uname -r 内核发行版本

uname -m 打印主机类型

uname -p 处理器架构

arch 处理器架构

/proc是一个在内存中的伪文件系统,引入了用户空间读取系统接口,可以获取大量信息

  • environ 环境变量
  • cwd 进程工作目录
  • exe 进程对应可执行文件的符号链接

cat /proc/4295/environ 显示该进程的环境变量

– CPU –

iscpu CPU 相关信息

getconf LONG_BIT CPU运行模式

cat /proc/cpuinfo 打印CPU名称

cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l cpu是否支持64bit

(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)

cat /proc/cpuinfo | head -20 CPU详细信息

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 打印CPU型号

grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l CPU 物理数量(物理)

cat /proc/cpuinfo |grep 'processor'|wc -l CPU物理数量(核数)

cat /proc/cpuinfo |grep "cores"|uniq CPU每个物理的核心core数量

cat /proc/cpuinfo |grep MHz|uniq 主频

cat /proc/cpuinfo | sed -n 5p 获取cpuinfo第五行保包含处理器的名称

– 内存 –

cat /proc/meminfo 内存详细信息

cat /proc/meminfo |head -20 内存信息前20条

cat /proc/meminfo | head -l 可用内存信息

cat /proc/partitions 或 fdisk -l 分区信息

free -m 内存使用情况

– 硬盘 –

fdisk -l |grep Disk 硬盘分区状态

lsblk 硬盘分布

fdisk -l 硬盘详细信息

mount | column -t 查看挂在分区状态

swapon -s 查看挂在分区状态

df -hT 硬盘使用情况

smartctl 硬盘检测

– 网卡 –

lspci | grep -i 'eth' 查看网卡硬件信息

ifconfig -a 查看接口

ip link show 查看接口

ethtool eth0 网络接口信息

for i in seq 0 9;do ethtool eth${i} | egrep 'eth|Link';done 所有网卡链路状态

– PCI –

lspci -tv | more 列出所有PCI信息

lshw 系统详细信息

2021-5-17 update hardware info

dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product|Serial" 服务器型号及序列号

dmidecode |grep -A16 "System Information$" 主板型号

dmidecode -t bios 主板信息

dmidecode -t memory | head -45 | tail -23 内存槽及内存条

dmidecode -t memory | head -45 | tail -24 查看内存硬件信息

dmidecode|grep -P 'Maximum\s+Capacity' 最大支持内存

dmidecode | grep -A5 "Memory Device" | grep Size | grep -v Range Linux 查看内存的插槽数,已经使用多少插槽.每条内存多大

dmidecode|grep -A16 "Memory Device"|grep 'Speed' 查看内存频率

dmesg | grep -i Ethernet 网卡信息

lspci | head -10 查看pci信息,即主板所有硬件槽信息

Dx 补充

a 系统状态检测

#ifconfig

网卡配置,网络状态 // 下载:yum install net-tools -y

# uname

内核,系统版本

# uptime

系统负载信息,开机多久

# time

CPU耗时

# hostname

查看主机名

# hostnamectl

查看主机名详细信息

# hwclock

系统时间

# tzselect

时区选择

# free

内存信息

# who

当前用户
# last

登入记录

# history

历史命令

# sosreport

差错检测

# supportconfig

收集信息出报告

b 性能监控

# top / atop / stabltop/htop

动态监视

# vmstat

性能监控

# cpustat

性能监控

# glances

性能监控 python写的

# nmon

性能监控

# pcp-gui

性能监控 GUI

# collectl 和 colplot

强大性能监控,第二个是在浏览器中查看

# iostat

CPU与磁盘

# pidstat // 下载:yum install sysstat -y

性能监控

# dstat

性能监控

# perf

CPU占用率

# sar和ksar

安装包 sysstat,图形化

# mpstat

系统信息平均值

# ps

系统命令进程

# pidof

指定服务进程PID

# kill

结束进程

# killall

结束指定名称的所有进程

Ex 参考

[1] 《Linux Shell脚本攻略》第二版 Shantanu Tushar\Sarath Lakshman 著


文章作者: Enomothem
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Enomothem !
  目录