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

本文主要是介绍线上排查问题全套命令WIP(查看日志、端口占用、磁盘、CPU等),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

线上排查问题全套命令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/01、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 459164Mem行(单位均为M):total   系统总的可用物理内存大小used    已被使用的物理内存大小free    还有多少物理内存可用shared  被共享使用的物理内存大小buff/cache  被 buffer 和 cache 使用的物理内存大小available   还可以被 应用程序 使用的物理内存大小(-/+ buffers/cache)行:(-buffers/cache): 真正使用的内存数,指的是第一部分的 used - buffers - cached(+buffers/cache): 可用的内存数,指的是第一部分的 free + buffers + cachedSwap行指交换分区		
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

这篇关于线上排查问题全套命令WIP(查看日志、端口占用、磁盘、CPU等)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626242

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Linux命令rm如何删除名字以“-”开头的文件

《Linux命令rm如何删除名字以“-”开头的文件》Linux中,命令的解析机制非常灵活,它会根据命令的开头字符来判断是否需要执行命令选项,对于文件操作命令(如rm、ls等),系统默认会将命令开头的某... 目录先搞懂:为啥“-”开头的文件删不掉?两种超简单的删除方法(小白也能学会)方法1:用“--”分隔命

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造