常用系统监控指令
- 1. top命令
- 1.1 命令语法
- 1.2 命令选项
- 1.3 命令详解
- 2. free命令
- 2.1 命令语法
- 2.2 命令选项
- 2.3 命令详解
- 3. df命令
- 3.1 命令语法
- 3.2 命令选项
- 3.3 命令详解
- 4. ps命令
- 4.1 命令语法
- 4.2 命令选项
- 4.3 命令详解
- 5. crontab命令
- 6. 查看端口命令
- 6.1 netstat命令
- 6.2 lsof命令
- 6.3 ss命令
- 6.4 nc命令
- 6.5 nmap命令
- 7. 查看系统资源使用情况
- 7.1 glances命令
- 7.2 nethogs命令
- 8. 查看网络流量
- 8.1 tcpdump命令
- 8.2 ifconfig命令
- 8.3 iftop命令
服务日常维护一般是看CPU、内存、磁盘、网络指标是否正常。
1. top命令
top命令常用来监控Linux系统状况,是常用的性能分析工具,实时显示系统中各个进程资源占用情况
1.1 命令语法
top [选项]
1.2 命令选项
选项 | 说明 |
---|---|
-b | 以处理模式操作 |
-c | 显示完整的命令行而不只是显示命令名 |
-d | 屏幕刷新间隔时间 |
-i | 空闲进程开关 |
-s | 保密模式 |
-S | 累积模式 |
-u 用户名或UID | 指定用户名 |
-p pid | 指定进程,可以指定多个pid |
-n number | 屏幕刷新次数后停止 |
-H | 查看进程下面的子线程 |
1.3 命令详解
命令执行结果:
[root@centos ~]# top
## 系统统计信息
top - 14:47:31 up 9 days, 21:24, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 183 total, 1 running, 182 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1881884 total, 1170352 free, 273080 used, 438452 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1446460 avail Mem
## 系统进程信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1197 root 20 0 1169468 31704 14136 S 0.1 1.7 7:49.70 dockerd-current
788 root 20 0 275072 4976 3656 S 0.0 0.3 4:46.40 vmtoolsd
1340 root 20 0 476448 13136 5416 S 0.0 0.7 5:19.59 docker-containe
9 root 20 0 0 0 0 S 0.0 0.0 0:10.06 rcu_sched
10004 root 20 0 0 0 0 S 0.0 0.0 0:02.56 kworker/1:2
13306 redis 20 0 143060 5796 1444 S 0.0 0.3 0:00.30 redis-server
1 root 20 0 193740 6828 4228 S 0.0 0.4 0:06.43 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.02 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
系统统计信息:
## 任务队列信息
top - 14:47:31 up 9 days, 21:24, 1 user, load average: 0.00, 0.01, 0.05
14:47:31 # 当前系统时间
up 9 days, 21:24 # 系统运行时间
1 user # 当前登录用户数
load average: 0.00, 0.01, 0.05 # 系统平均负载数,表示最近1分钟、最近5分钟、最近15分钟的系统平均负载数
## 进程统计信息
Tasks: 183 total, 1 running, 182 sleeping, 0 stopped, 0 zombie
183 total # 系统当前总进程数
1 running # 正在运行进程数
182 sleeping # 睡眠进程数
0 stopped # 停止进程数
0 zombie # 僵尸进程数
## CPU统计信息
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
0.0 us # 用户空间CPU占用率
0.0 sy # 内核空间CPU占用率
0.0 ni # 用户进程空间改变过优先级的进程CPU的占用率
100.0 id # 空闲CPU占有率
0.0 wa # 等待输入输出的CPU时间百分比
0.0 hi # 硬件中断请求
0.0 si # 软件中断请求
0.0 st # 分配给运行在其它虚拟机上的任务的实际CPU时间
## 内存状态,单位是KB
KiB Mem : 1881884 total, 1170352 free, 273080 used, 438452 buff/cache
1881884 total # 物理内存总量
1170352 free # 空闲内存
273080 used # 已使用内存
438452 buff/cache # 内核缓存使用
## swap交换分区信息
KiB Swap: 2097148 total, 2097148 free, 0 used. 1446460 avail Mem
2097148 total # 交换分区总量
2097148 free # 空闲交换分区
0 used # 已使用交换分区
1446460 avail Mem # 缓冲交换区
系统进程信息:
## 系统进程信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1197 root 20 0 1169468 31704 14136 S 0.1 1.7 7:49.70 dockerd-current
PID # 进程id
USER # 进程所有者的用户名
PR # 进程优先级
NI # nice值,负值表示高优先级,正值表示低优先级
VIRT # 进程使用的虚拟内存总量,VIRT=SWAP+RES,单位KB
RES # 进程使用的、未被换出的物理内存大小,RES=CODE+DATA,单位KB
SHR # 共享内存大小,单位KB
S # 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU # 上次更新到现在的CPU时间占用百分比
%MEM # 进程使用的物理内存百分比
TIME+ # 进程使用的CPU时间总计,单位1/100秒
COMMAND # 进程名称[命令名/命令行]
1、按1
键,可打开或关闭显示详细CPU统计信息
2、按字母B
键,可打开或关闭当前进程的显示效果
3、top -H -p pid
,查看进程pid下面的子线程
2. free命令
查看物理上空闲、已使用及交换内存情况
2.1 命令语法
free [选项]
2.2 命令选项
选项 | 说明 |
---|---|
-b | 以byte为单位显示内存使用情况 |
-k | 以KB为单位显示内存使用情况 |
-m | 以MB为单位显示内存使用情况 |
-o | 不显示缓冲区调节列 |
-s number | 持续观察内存使用情况 |
-t | 显示内存总和列 |
2.3 命令详解
命令执行结果:
[root@centos ~]# free
total used free shared buff/cache available
Mem: 1881884 272696 1170692 9084 438496 1446824
Swap: 2097148 0 2097148
Mem # 表示物理内存统计
Swap # 表示物理内存统计(total=used+free)
used # 表示系统分配给缓存使用的数量(这里的缓存包括buffer和cache)
free # 表示空闲物理内存总数
shared # 表示共享内存
buff/cache #
available #
3. df命令
查看磁盘分区使用磁盘空间情况,默认单位为KB
3.1 命令语法
df [选项]
3.2 命令选项
选项 | 说明 |
---|---|
-a | 查看全部的文件系统 |
-h | 查看磁盘使用情况 |
-i | 查看inode使用情况 |
3.3 命令详解
命令执行结果:
[root@hecs-141089 bin]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 893M 0 893M 0% /dev
tmpfs 909M 0 909M 0% /dev/shm
tmpfs 909M 8.5M 900M 1% /run
tmpfs 909M 0 909M 0% /sys/fs/cgroup
/dev/vda1 40G 2.7G 35G 8% /
tmpfs 182M 0 182M 0% /run/user/0
4. ps命令
查看进程统计信息
4.1 命令语法
ps [选项]
4.2 命令选项
选项 | 说明 |
---|---|
-a | 显示当前终端下的所有进程信息,包括其他用户的进程 |
-u | 使用以用户为主的格式输出进程信息 |
-x | 显示当前用户在所有终端下的进程 |
-e | 显示系统内的所有进程信息 |
-l | 使用长格式显示进程信息 |
-f | 使用完整的格式显示进程信息 |
-T | 查看进程下面的子线程 |
4.3 命令详解
命令执行结果:
[root@centos ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 2 0 0 Oct31 ? 00:00:00 [kthreadd]
root 4 2 0 Oct31 ? 00:00:00 [kworker/0:0H]
root 6 2 0 Oct31 ? 00:00:00 [ksoftirqd/0]
[root@centos ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S Oct31 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< Oct31 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S Oct31 0:00 [ksoftirqd/0]
5. crontab命令
在指定的时间执行一个shell脚本或者一系列Linux命令
# 添加定时任务
crontab -e
# 每天早上3点运行/root/bin/backup.sh脚本
0 5 * * * /root/bin/backup.sh
# 分 时 日 月 周 命令
# 显示crontab文件
crontab -l
# 删除crontab文件
crontab -r
# 删除crontab文件前提醒用户
crontab -ir
6. 查看端口命令
6.1 netstat命令
是查看本机开放了哪些端口;本机开放的所有的端口
# 安装
yum -y install net-tools
# 列出所有端口
netstat -a
# 列出所有tcp端口
netstat -at
# 列出所有udp端口
netstat -au
6.2 lsof命令
查看端口被占用情况
# 安装
yum -y install lsof
# 查看指定端口占用情况
lsof -i:22
# 查看指定进程打开了哪些文件、加载库、依赖库
lsof -p 13306
# 查看指定目录被那个进程打开
lsof /root
6.3 ss命令
# 输出所有建立的连接(不包含监听的端口),包括 tcp, udp, and unix
ss
# 查看主机监听的tcp端口信息
ss -tnl
# 查看监听的tcp连接
ss -tna
6.4 nc命令
扫描指定ip开放哪些端口
# 安装
yum -y install nc
# 查看ip指定端口是否开放
nc -z 192.168.123.75 22
# 超时等待查看ip指定端口是否开发
nc -w 3 -z 192.168.123.75 22
6.5 nmap命令
扫描指定ip端口号
nmap 192.168.123.75
7. 查看系统资源使用情况
7.1 glances命令
可以监视CPU、平均负载、内存、网络流量,磁盘I/O,其他处理器和文件、系统的利用情况
# 安装
yum install -y glances
# 使用
glances
# 退出
q
7.2 nethogs命令
动态查看某个进程消耗了多少流量,知道哪些进程和外面进行通信
# 安装
yum install -y nethogs
# 使用
nethogs
# 退出
8. 查看网络流量
8.1 tcpdump命令
抓包查看网络流量
# 安装
yum -y install tcpdump
# 监听ens192接口上的所有流量并输出到控制台
tcpdump -i ens192
# 监听ens192接口与192.168.123.245通信的所有流量并输出到控制台
tcpdump -i ens192 host 192.168.123.245
# 监听ens192接口上所有传输层协议为TCP的流量并输出到控制台
tcpdump -i ens192 tcp
# 监听ens192接口上所有端口号为80的流量并输出到控制台
tcpdump -i ens192 port 80
# 监听ens192接口上所有来自192.168.123.245的流量并输出到文件packets.pcap
tcpdump -i ens192 src 192.168.123.245 -w packets.pcap
# 监听ens192接口上所有去往192.168.123.245的流量并输出到文件packets.pcap
tcpdump -i ens192 dst 192.168.123.245 -w packets.pcap
8.2 ifconfig命令
用于配置和显示网络接口的具体状况
# 安装
yum -y install net-tools
# 显示所有已激活网卡信息
ifconfig
# 单独显示ens192网卡信息
ifconfig ens192
# 启动网卡ens192
ifconfig ens192 up
# 关闭网卡ens192
ifconfig ens192 down
# 设置能通过的最大数据包大小为 1500 bytes
ifconfig ens192 mtu 1500
# 开启网卡ens192的arp协议
ifconfig ens192 arp
#关闭网卡ens192的arp协议
ifconfig ens192 arp
8.3 iftop命令
用于查看网络上的流量情况,包括实时速率、总流量、平均流量等,是一款实时流量监控工具。不记录历史数据,无报表,且只能显示从程序启动到现在的总流量。
# 安装
yum install -y iftop
# 使用
iftop
# 退出
q