线上排查问题全套命令WIP(查看日志、端口占用、磁盘、CPU等)

发布时间:2024年01月20日

线上排查问题全套命令WIP(查看日志、端口占用、磁盘、CPU等)

1 查看日志

1.1 less

①less xxx.log:查看日志文件
②less -N xxx.log:带行号查看日志
③g:定位到文件顶部
④G(shift+g键):定位到文件底部
⑤/keyword:向下查找
n:向下匹配下一处匹配文本
N:向上匹配下一处匹配文本
⑥?keyword:向上查找
n:向上匹配下一处匹配文本
N:向下匹配下一处匹配文本
⑦F:实时滚动文档

F(shift+f键):类似与tail -f a.log

ctrl+C退出实时滚动模式

1.2 grep

①grep -i:忽略大小写过滤
②grep -v:反向查找
  • grep -v “grep” 就是查找不含有 grep 字段的行
  • grep -v ^# /etc/profile就是不显示以#开头的行( ^在正则中匹配文件开头)
grep -v “grep” :查找不含有 grep 字段的行
grep -v ^# /etc/profile:过滤不以#开头的行
③grep -i ‘error’ a.log:忽略大小写过滤a.log中包含error的行
④grep ‘^2023’ upgrade.log:过滤2023开头的行

1.3 tail

①tail -n 200 a.log:查看最后200行日志
②tail -f a.log:追踪a.log,文件被删除时则暂停

当a.log有日志输出时,在终端也滚动输出

  • 等同于–follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
【Ctrl】+【S】 暂停刷新
【Ctrl】+【Q】继续刷新
【Ctrl】+【C】退出 tail 命令
③tail -F a.log:追踪日志,当有同名文件出现继续追踪

等同于–follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪

2 查看进程、端口占用

2.1 ps:查看进程

①ps -ef:显示系统中所有进程的列表,包括其他用户进程
ps -ef | grep java:过滤进程名包含java的进程
②ps -aux:显示详细的进程信息,包括CPU和内存使用情况
ps -aux | grep java:查看java进程详细信息

2.2 lsof(listen open files):查看端口等

① 查看端口占用:lsof -i :80
②查看端口被哪个进程占用:lsof -P -i :8080
③根据进程号查看进程使用的文件:lsof -p PID
④查看某个目录被哪些进程使用:lsof 目录名

2.3 netstat:查询进程名称和进程ID

netstat -tunlp
-t: 显示 TCP 连接
-u: 显示 UDP 连接
-n: 显示数字地址
-l: 列出状态是 LISTEN 的统计信息
-p: 显示程序的PID和名称

①netstat -tunlp | grep 3306:根据端口号查询
②netstat -tunlp | grep mysqld:根据进程名查询
③netstat -tunlp | grep 29520:根据进程ID查询

3 查看磁盘

3.1 df(disk free):查看文件系统的磁盘空间使用情况

df [选项] [文件]

-a 列出所有的文件系统,包括系统特有的 /proc 等文件系统
-k 以 KBytes 的容量显示各文件系统。命令 df -k 同命令 df
-m 以 MBytes 的容量显示各文件系统
-h 以人们较易阅读的 GBytes、MBytes、KBytes 等格式自行显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 不用磁盘容量,而以 inode 的数量来显示
-l 只显示本地文件系统。命令 df -l 同命令 df
–no-sync 忽略 sync 命令
-P 输出格式为POSIX
–sync 在取得磁盘信息前,先执行sync命令
-T 连同该磁盘分区的文件系统名称(例如 xfs)也列出
–block-size=<区块大小> 指定区块大小
-t <文件系统类型> 只显示选定文件系统的磁盘信息
-x <文件系统类型> 不显示选定文件系统的磁盘信息
–help 显示帮助信息
–version 显示版本信息

例如:

[root@ziyi ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
/dev/mapper/rhel-root  17811456 1196004  16615452   7% /
devtmpfs                 497216       0    497216   0% /dev
tmpfs                    508188       0    508188   0% /dev/shm
tmpfs                    508188    6736    501452   2% /run
tmpfs                    508188       0    508188   0% /sys/fs/cgroup
/dev/vda1               1038336  141508    896828  14% /boot
tmpfs                    101640       0    101640   0% /run/user/0


1、Filesystem:代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);

2、1K-blocks:说明下面的数字单位是  1KB,可利用 -h-m 来改变容量;

3、Used:使用掉的磁盘空间;

4、Available:也就是剩下的磁盘空间大小;用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间清单中;

5、Use%:就是磁盘的使用率,如果使用率高达 90%  以上,最好注意一下,免得容量不足造成系统问题,例如最容易占满的  /var/spool/mail  这个保存邮件的目录;

6、Mounted  on:就是磁盘的挂载目录(挂载点)。
df -h:以可读方式显示磁盘和空间使用情况
[root@ziyi ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   17G  1.2G   16G   7% /
devtmpfs               486M     0  486M   0% /dev
tmpfs                  497M     0  497M   0% /dev/shm
tmpfs                  497M  6.6M  490M   2% /run
tmpfs                  497M     0  497M   0% /sys/fs/cgroup
/dev/vda1             1014M  139M  876M  14% /boot
tmpfs                  100M     0  100M   0% /run/user/0

3.2 du(disk usage):显示每个文件和目录的磁盘使用空间

df [选项] [文件]

-a或-all 列出所you的文件与目录容量,因为默认仅统计目录下面的文件量
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或–kilobytes 以KB(1024bytes)为单位输出。
-m或–megabytes 以MB为单位输出。
-s或–summarize 仅显示总量,只列出最后加总的值,而不列出每个个别的目录占用容量。
-S或–separate-dirs 不包括子目录下的总计,与 -s 有点差别
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或–dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
-D或–dereference-args 显示指定符号链接的源文件大小。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或–count-links 重复计算硬件链接的文件。

du -h upgrade.log:显示upgrade.log所用空间
du -h dir0:查看dir0目录所占空间
du -h --max-depth=1:查看当前目录下各个子目录所用空间

df与du区别:df某些情况下更精准

1、du :是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
2、 df: 通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件,df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。
当文件系统也确定删除了该文件后,这时候du与df就一致了。

4 查看内存

4.1 free

free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

free [-bkmhotV][-s <间隔秒数>]

-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
B = bytes
K = kilos
M = megas
G = gigas
T = teras

-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。

[root@ziyi ~]# free
total used free shared buffers cached
Mem: 254772 184568 70204 0 5692 89892
-/+ buffers/cache: 88984 165788
Swap: 524280 65116 459164

Mem行(单位均为M):
    total   系统总的可用物理内存大小
    
    used    已被使用的物理内存大小
    
    free    还有多少物理内存可用
    
    shared  被共享使用的物理内存大小
    
    buff/cache  被 buffer 和 cache 使用的物理内存大小
    
    available   还可以被 应用程序 使用的物理内存大小
    
   (-/+ buffers/cache)行:
		(-buffers/cache): 真正使用的内存数,指的是第一部分的 used - buffers - cached
		(+buffers/cache): 可用的内存数,指的是第一部分的 free + buffers + cached

Swap行指交换分区		
free -th:以总和形式查看内存使用信息

在这里插入图片描述

free -s 2:每2s查询内存使用信息

-h:以人类可阅读形式展示

在这里插入图片描述

5 查看CPU

5.1 top:查看进程占用CPU、内存

top:“实时查看” ,按q退出 (实时动态显示)

  • top的使用方式 top [-d number] | top [-bnp]
top 各个参数含义

在这里插入图片描述

top+其他按键组合(区分大小写)

在这里插入图片描述

top+P:以CPU使用情况排序
top+M:以内存使用情况排序
top+N:以pid排序显示
top+T:由进程使用时间累计排序显示
q:退出top命令
执行top后,各参数含义

在这里插入图片描述

top - 14:49:28 up 1:33, 1 user, load average: 0.00, 0.00, 0.00

在这里插入图片描述

Tasks: 80 total, 2 running, 78 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

在这里插入图片描述

Mem: 1922488k total, 406936k used, 1515552k free, 11940k buffers

在这里插入图片描述

Swap: 835576k total, 0k used, 835576k free, 111596k cached

在这里插入图片描述

top显示进程各个参数信息

默认进入top时,各进程是按照CPU的占用量来排序的。

在这里插入图片描述

参考:
https://blog.csdn.net/JMW1407/article/details/107902100
https://blog.csdn.net/weixin_45465395/article/details/115728520

文章来源:https://blog.csdn.net/weixin_45565886/article/details/135659930
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。