Liunx运维(十一)-系统管理命令

文档目录:

一、lsof:查看进程打开的文件

二、uptime:显示系统的运行时间及负载

三、free:查看系统内存信息

四、iftop:动态显示网络接口流量信息

五、vmstat:虚拟内存统计

六、mpstat:CPU 信息统计

七、iostat:I/O 信息统计

八、iotop:动态显示磁盘 I/O 统计信息

九、sar:收集系统信息

十、ntsysv:管理开机服务

十一、setup:系统管理工具

十二、ethtool:查看网卡参数

十三、mii-tool:管理网络接口的状态

十四、dmidecode:查询系统硬件信息

十五、ispci:显示所有 PCI 设备

十六、ipcs:显示进程间同信息设施的状态

十七、ipcrm:清除 ipc 相关信息

十八、rpm:RPM 包管理器

十九、yum:自动化 RPM 包管理工具

--------------------------------------- 分割线:正文 --------------------------------------------------------

一、lsof:查看进程打开的文件

命令详解:

lsof=list open files,列举系统中已经被打开的文件,根据文件可以找到对应的进程,也可以根据进程找到打开的文件

1、显示使用文件的进程

lsof /var/log/messages #显示使用文件的进程

 COMMAND:命令,即进程名

PID:进程号

USER:进程的所有者 

FD:文件描述符,0- 标准输出,1- 标准输入,2- 标准错误,u- 文件被打开并处于读取 / 写入模式,r- 表示该文件被打开并处于只读模式,w- 表示该文件被打开并处于写入模式

TYPE:文件类型,REG(regular) 为普通文件

DEVICE:磁盘的名称

SIZE/OFF:文件的大小

NODE:索引节点

NAME:文件名称

2、指定进程所打开的文件

lsof -c rsyslogd #指定进程所打开的文件

 3、指定进程号所打开的文件

lsof -p 57238 #指定进程号所打开的文件

 4、监听指定的协议、端口和主机等信息,显示符合条件的进程信息。

lsof -i #查看所有进程

  lsof -i tcp #显示所有 tcp 网络连接的进程信息

 lsof -i :22 #显示端口为 22 的进程,常用

 lsof -i tcp:22 #显示同事满足 TCP 和端口 22 的进程

 5、显示指定用户使用的文件

lsof -u root #使用 -u 指定用户使用的文件

 6、显示所有 socket 文件

lsof -U #使用 -U 显示所有 socket 文件

 

二、uptime:显示系统的运行时间及负载

命令详解:

输出当前的系统时间、系统开机到现在的运行时间、目前有多少用户在线和系统平均负载等信息

1、uptime #显示系统运行时间及负载信息

 

三、free:查看系统内存信息

命令详解:

free 命令用于显示系统内存状态,具体包括系统物理内存、虚拟内存、共享内存和系统缓存等

total- 代表内存总大小 

used- 表示使用的实际内存大小

free- 剩余物理内存大小(未分配、纯剩余)

share:共享内存大小、无需关注

buff/cache:缓冲(缓冲如:cpu 到 io 硬盘,硬盘写入速度慢 需要先将一部分数据缓存到内存)和缓存(如:io 硬盘到 cpu,从硬盘读取 需要先把数据临时放内存里面 大小

available:实际可使用的内存大小;(free+buff/cache 只分配,但未使用的内存)

1、查看系统内存

free #默认显示字节数

 free -m  #以 MB 为单位显示内存使用情况

 free -h  #根据实际大小自动转换成 KB、GB、MB 单位显示

真实剩余内存 =free+buff/cache=489M+317M=806M

换算关系:

total=used + free + buff/cache

available=free + buff/cache(分配但未使用的内存)

其中:used 已使用内存,和 buff/cache 被占用的内存没有关系;

 2、定时查询内存:

free -h -s 10 #使用 -s 选项定时刷新内存的使用情况,单位为秒

 

 四、iftop:动态显示网络接口流量信息

命令详解:

iftop 是一款实时流量监控工具,可用于监控 TCP/IP 连接等,必须用 root 用户身份运行。

安装方法参考:https://www.cnblogs.com/chaichuan/p/4442610.html

1、不接受任务参数启动 iftop 命令监控流量

iftop #默认监听第一块网卡,-i 可以指定网卡

 界面上显示的类似刻度尺的刻度范围,是以标尺的形式显示流程图形的长条

中间的 <= 或 >= 两个箭头,表示的是流量的方向

TX:发送流量

RX:接收流量

TOTAL:总流量

Cum:运行 iftop 到目前时间的总流量

peak:流量峰值

rates:分别表示过去 2s、10s、40s 的平均流量

 2、常用命令组合

iftop -nNBP #-n 不进行 DNS 解析,-N 数字形式端口号,-P 显示端口号,-B,以字节流为单位,默认为 bit 显示流量

 

 五、vmstat:虚拟内存统计

命令详解:

vmstat=virtual memory statistics,使用 vmstat 可以对操作系统的内存信息、进程状态和 CPU 活动等进行监视,但只能对系统的整体情况进行统计,无法对某个进程深入分析。

1、显示虚拟内存的使用情况

vmstat #省略 - 间隔时间与次数参数,仅显示一次报告后退出

 vmstat 5 #表示每 5 秒更新一次输出信息,循环输出,ctrl+c 退出

 vmstat 5 6  #表示每 5 秒更新一次输出信息,统计 6 次后停止输出

第 1 列:procs

r- 运行和等待 CPU 时间片的进程数,b- 正在等待资源的进程数

第 2 列:memory

swpd:表示使用虚拟内存的大小

free:表示当前空闲的物理内存数量

buff:表示 buffers 的内存数量

cache:表示 cache 的内存数量

第 3 列:swap

si(swap in):列表示由磁盘调入内存,也就是内存进入内存交换区的数量

so(swap out):列表示由内存调入磁盘,也就是内存交换区进入内存的数量

第 4 列:I/O 项显示磁盘读写状况

bi 列表示从块设备读入数据的总量 (即读磁盘)(块 /s)

bo 列表示写入块设备数据的总量 (即读磁盘)(块 /s)

第 5 列:system 显示采集间隔内发生的中断数

in 列表示在某一时间间隔中观测到的每秒设备中断数

cs 列表示每秒产生的上下文切换次数

第 6 列:CPU 项显示了 CPU 的使用状态

us 列显示了用户进程消耗的 CPU 时间百分比

sy 列显示了系统(内核)进程消耗的 cpu 时间百分比

id 列显示了 CPU 处在空闲状态的时间百分比

wa 列显示了 I/O 等待所占用的 CPU 时间百分比

st 列显示了虚拟机占用的 CPU 时间的百分比

2、显示活跃和非活跃内存

vmstat -a 2 5 #-a 内容增加了 inact 与 active 选项,分别代表非活跃与活跃内存

 3、查看内存使用的详细情况

vmstat -s

 4、查看磁盘的读 / 写

vmstat -d

 5、查看 dev/sda1 磁盘的读写

vmstat -p /dev/sda1

reads:来自该分区的读的次数

reads sectors:来自于该分区的读扇区的次数

writes:来自于该分区的写的次数

requested writes:来自于该分区的写请求的次数

 

六、mpstat:CPU 信息统计

命令详解:

mpstat=multiprocessor statistics,一种实时监控工具,输出 cpu 的统计信息,存放在 /proc/stat,可查询所有 cpu 平均信息, 也可以查特定的 cpu 信息

mpstat 的最大特点:可以查看多核 cpu 中每个计算核心的统计数据,而 vmstat 只能查看系统整体的 cpu 情况

1、显示 cpu 统计信息

mpstat #省略 - 间隔时间与次数参数,仅显示一次报告后退出

mpstat 5 6 #表示每 5 秒更新一次输出信息,统计 6 次后停止输出

 第一列:当前时间

CPU:all 表示所有 cpu,0 表示第一个 cpu

%user:用户进程消耗的 CPU 时间(%)

%nice:nice 值为负进程的 CPU 时间(%)

 %sys 核心时间(%)

%iowait 硬盘 IO 等待时间(%)

%irq 硬中断时间(%)

%soft 软中断时间(%)

%steal 显示虚拟机管理器在服务另一个虚拟处理器时虚拟 CPU 处在非自愿等待下花费时间的百分比

%guest 显示运行虚拟处理器时 CPU 花费时间的百分比

%idle CPU 除去等待磁盘 IO 操作外的因为任何原因而空闲的时间闲置时间(%)

2、显示指定 cpu 信息的统计

mpstat -P 0 #显示第一个 cpu 的信息

 

七、iostat:I/O 信息统计

命令详解:

iostat=I/O statistics, 主要功能是对系统磁盘 I/O 操作进行监控,它的输出主要是显示磁盘读写操作的统计信息,同时也会给出 CPU 的使用情况,同 vmstat 命令一样,不能对某个进程进行深入分析,仅对整体情况进行分析

1、iostat #省略 - 间隔时间与次数参数,仅显示一次报告后退出

%user:CPU 处在用户模式下的时间百分比
%nice:CPU 处在带 NICE 值的用户模式下的时间百分比
%system:CPU 处在系统模式下的时间百分比
%iowait:CPU 等待输入输出完成时间的百分比
%steal:管理程序维护另一个虚拟处理器时,虚拟 CPU 的无意识等待时间百分比
%idle:CPU 空闲时间百分比

device: 磁盘名称
tps: 每秒钟发送到的 I/O 请求数
Blk_read/s: 每秒读取的 block 数
Blk_wrtn/s: 每秒写入的 block 数
Blk_read: 读入的 block 总数
Blk_wrtn: 写入的 block 总数

2、定时显示所有信息

iostat 2 3 #每 2 秒更新一次信息,共显示 3 次

 3、只显示磁盘统计信息

iostat -d

iostat -d -k #-k 以 KB 为单位显示数据

 4、查看扩展信息

iostat -d -x -k #-x 显示扩展信息

 rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s

wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rkB/s: 每秒读 K 字节数。是 rsect/s 的一半,因为每扇区大小为 512 字节。
wkB/s: 每秒写 K 字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备 I/O 操作的数据大小 (扇区)。
avgqu-sz: 平均 I/O 队列长度。
rsec/s: 每秒读扇区数。即 rsect/s
wsec/s: 每秒写扇区数。即 wsect/s
r_await: 每个读操作平均所需的时间
不仅包括硬盘设备读操作的时间,还包括了在 kernel 队列中等待的时间。
w_await: 每个写操作平均所需的时间
不仅包括硬盘设备写操作的时间,还包括了在 kernel 队列中等待的时间。
await: 平均每次设备 I/O 操作的等待时间 (毫秒)。
svctm: 平均每次设备 I/O 操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被 io 消耗的 cpu 百分比

备注:如果 %util 接近 100%,说明产生的 I/O 请求太多,I/O 系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,io 响应太慢,则需要进行必要优化。如果 avgqu-sz 比较大,也表示有当量 io 在等待。

5、只查看 cpu 的信息

 

 八、iotop:动态显示磁盘 I/O 统计信息

命令详解:

iptop 命令是一款实时监控磁盘 I/O 的工具,必须以 root 身份运行,使用 iotop 命令可以很方便地查看每个进程使用磁盘 I/O 的情况

1、不接任何参数启动 iotop 命令

 Total DISK READ:总磁盘读取速度

Total DISK WRITE:总磁盘读取速度

TID:进程 pid 值 PRIO:优先级

USER:用户

DISK READ:磁盘读取速度

DISK WRITE:磁盘写入速度

SWAPIN:从 swap 分区读取数据占用的百分比

I/O:I/O 占用的百分比

COMMAND:消耗 I/O 的进程名

 

九、sar:收集系统信息

命令详解:

通过 sar 命令,可以全面地获取系统的 CPU、运行队列、磁盘 I/O、分页(交换区)、内存、CPU 中断和网络等硬盘信息

1、sar -u 2 3 #-u 显示系统所有 cpu 的负载状态,2,3 代表每 2 秒统计一次,共统计 3 次

 %user:CPU 处在用户模式下的时间百分比

%nice:CPU 处在带 NICE 值的用户模式下的时间百分比
%system:CPU 处在系统模式下的时间百分比
%iowait:CPU 等待输入输出完成时间的百分比
%steal:管理程序维护另一个虚拟处理器时,虚拟 CPU 的无意识等待时间百分比
%idle:CPU 空闲时间百分比

 2、显示运行队列的大小

sar -q 2 3 #使用 -q 选项显示运行队列的大小

 runq-sz 运行队列的长度(等待运行的进程数,每核的 CP 不能超过 3 个)

plist-sz 进程列表中的进程(processes)和线程数(threads)的数量
ldavg-1 最后 1 分钟的 CPU 平均负载,即将多核 CPU 过去一分钟的负载相加再除以核心数得出的平均值,5 分钟和 15 分钟以此类推
ldavg-5 最后 5 分钟的 CPU 平均负载
ldavg-15 最后 15 分钟的 CPU 平均负载

 3、显示系统内存的使用状况

sar -r 2 3 #使用 -r 选项显示系统内存在采样时间内的使用情况

kbmemfree 空闲的物理内存大小

kbmemused 使用中的物理内存大小
%memused 物理内存使用率
kbbuffers 内核中作为缓冲区使用的物理内存大小,kbbuffers 和 kbcached: 这两个值就是 free 命令中的 buffer 和 cache.
kbcached 缓存的文件大小
kbcommit 保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存 +Swap 分区)
commit 这个值是 kbcommit 与内存总量(物理内存 +swap 分区)的一个百分比的值

 4、显示缓冲区的使用情况

sar -b 2 3 #使用 -b 显示缓冲区在采样时间内的使用情况

tps 磁盘每秒钟的 IO 总数,等于 iostat 中的 tps
rtps 每秒钟从磁盘读取的 IO 总数
wtps 每秒钟从写入到磁盘的 IO 总数
bread/s 每秒钟从磁盘读取的块总数
bwrtn/s 每秒钟此写入到磁盘的块总数

5、显示网络的运行状态

sar -n DEV 2 3 #使用 -n DEV 显示网络接口信息

#IFACE 本地网卡接口的名称
#rxpck/s 每秒钟接受的数据包
#txpck/s 每秒钟发送的数据库
#rxKB/S 每秒钟接受的数据包大小,单位为 KB
#txKB/S 每秒钟发送的数据包大小,单位为 KB
#rxcmp/s 每秒钟接受的压缩数据包
#txcmp/s 每秒钟发送的压缩包
#rxmcst/s 每秒钟接收的多播数据包

sar -n EDEV 2 3 #-n EDEV 显示网络错误的统计数据

IFACE 网卡名称
rxerr/s 每秒钟接收到的损坏的数据包
txerr/s 每秒钟发送的数据包错误数
coll/s 当发送数据包时候,每秒钟发生的冲撞(collisions)数,这个是在半双工模式下才有
rxdrop/s 当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目
txdrop/s 当由于缓冲区满的时候,网络设备发送端每秒钟丢掉的网络包的数目
txcarr/s 当发送数据包的时候,每秒钟载波错误发生的次数
rxfram 在接收数据包的时候,每秒钟发生的帧对其错误的次数
rxfifo 在接收数据包的时候,每秒钟缓冲区溢出的错误发生的次数
txfifo 在发生数据包 的时候,每秒钟缓冲区溢出的错误发生的次数

6、查看系统磁盘的读写性能

sar -d 2 3 #-d 显示系统所有硬盘设备在采样时间内的使用情况

DEV 磁盘设备的名称,如果不加 -p,会显示 dev253-0 类似的设备名称,因此加上 -p 显示的名称更直接
tps:每秒 I/O 的传输总数
rd_sec/s 每秒读取的扇区的总数
wr_sec/s 每秒写入的扇区的总数
avgrq-sz 平均每次次磁盘 I/O 操作的数据大小(扇区)
avgqu-sz 磁盘请求队列的平均长度
await 从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1 秒等于 1000 毫秒),等于寻道时间 + 队列时间 + 服务时间
svctm I/O 的服务处理时间,即不包括请求队列中的时间
%util I/O 请求占用的 CPU 百分比,值越高,说明 I/O 越慢

 

十、ntsysv:管理开机服务

命令详解:

提供基于文本界面的菜单编辑操作方式,以设置不同运行级别下的系统启动状态

 

 十一、setup:系统管理工具

命令详解:

一个基于文本界面的系统管理工具,集成了用户认证管理、防火墙管理、网络管理和系统管理。

1、安装:yum -y install setuptool

2、进行 set 交互界面

 

 

 十二、ethtool:查看网卡参数

1、查询网卡的基础参数

ethtool ens33

 

 十三、mii-tool:管理网络接口的状态

1、查看网络接口状态

mii-tool ens33 #不加参数,显示精简信息

 mii-tool -v ens33 #-v 显示详细信息

 

 十四、dmidecode:查询系统硬件信息

1、查看服务器型号

dmidecode -s system-product-name #查看服务器型号

 2、dmidecode -s system-serial-number #查看序列号关键字

 3、dmidecode -t memory|more  #查看内存信息

 

 十五、ispci:显示所有 PCI 设备

1、显示所有 pci 设备

lspci #显示所有 pci 设备

 2、显示网卡设备信息

lspci -s 02:01.0 #从以上信息得到网卡设备编号

 

 十六、ipcs:显示进程间同信息设施的状态

1、显示进程间的通信状态

 

 十七、ipcrm:清除 ipc 相关信息

ipcrm -s 0 #清除 semid 为 0 的信号集

 

 十八、rpm:RPM 包管理器

命令详解:

rpm=Red Hat Package Manager(Red Hat 管理器),几乎所有的 Liunx 发行版本都使用了这种形式的命令管理、安装、更新和卸载软件

rpm 包含五种基础命令:安装、卸载、升级、查询和验证

1、查看 rpm 包信息

rpm -qpi 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #显示 rpm 包的版本,创建日期等信息

 2、 查看 rpm 包内容

rpm -qpl 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #显示 rpm 包内的文件

 3、查看 rpm 包的依赖

rpm -qpR 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #查看安装次 rpm 包需要依赖的文件

 4、rpm -ivh 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #-h 查看安装时的进度

 5、查看系统是否安装指定的 rpm 包

rpm -qa yum #接软件名

 6、卸载 rmq 包

rpm -e lsof #卸载软件包

 

 十九、yum:自动化 RPM 包管理工具

命令详解:

yum=yellow dog updater modified,是多个 Liunx 发行版的软件包管理,如 Redhat、Centos、Fedora,yum 主要用于自动安装、升级 rpm 软件包,它能自动查找并解决 rpm 包之前的依赖关系。

1、安装 lsof 软件包

yum -y install lsof

 2、检查安装列表

yum list lsof