有关在linux服务器里查找详细进程的方法,我列举出来几个咱们需要知道的,第一个是cwd是进程运行model,也就是说我在某个目录执行了一条命令,那这条命令运行起来之后,所展示的目录cwd就是我在当前所在的目录, Exce这个文件,才是程序执行的绝对路径。这个链接符号大家可以理解为就是快捷键,他把一个文件或者目录用连接的方式写入到这儿。那实际上你看到的它其实不是一个真实文件,它是一个链接。 CWD这是进程运行目录,那这就是环境变量运行时的系统环境变量。再看下一个资源,那 CPU也称为中央处理器,主处理器或者单处理器,是执行计算机指令的关键部件。比如你木马想执行那它就得靠CPU,你一个算法想执行也得靠CPU,你CPU越强大你算得越快。那当有一个服务进程,他突然占用CPU远超平时了,那这是什么原因,他可能中了挖矿病毒,这个时候我们如果去客户那怎么去说,比如我要跟他排查CPU,你要问他 CPU是否远超平时居高不下,如果是的话,那么可能被植入了病毒。当然这句话不是直接对客户去说,但你要组织一下自己的语言。
看一下CPU的占用,那这条命令特别简单叫Top,也就是说前几个看越靠上的占用CPU越多,比如说这块CPU已经百分百了,那么你要注意了,它基本上90%是病毒,可能那10%是一个正常程序。那在设计这个服务的时候,业务这时候他不会有真正的你占到90%多,那可能是一个业务高峰或者大高频的一个计算的业务,那普通业务,基本上它会有一个冗余,就说你百你正常的90%多了,那一旦客户在大批量进来的时候那不崩溃了。
所以说注意,那当他阀值80% 90%以上,这时候就可能有问题了,就要与运维技术人员沟通,去看一下这个服务是什么。当然你可以自己去用那个方法去排查一下,那怎么排查,比如说看一下,ps aux,其实刚才那条命令可以看到这是docker的占用。非常清晰,那知道它的PID了,就可以知道它在哪了。
那下面我们还会告诉你,他如何看到这个文件进程所占用的端口,因为它运行的服务有一些是要占用计算机端口的。那咱们先下面讲,再通过这个方式,我们看到了前边的CPU占用,但是想要更清晰的了解,通过这条命令看一下前10的内存,就是前10的内存,那相应的排查也是刚才说的,不再继续了。
网络带宽,这里排查网络带宽与运维要积极沟通,有时候吧你在流量服务器上看不到就说,这个流量你在服务器上非常的不显眼,你只能感觉到服务器卡,但你不知道原因,有时候还不能安装命令,我们想看到本身它的流量我们需要安装一个命令,那这时候又不能按命令,又看不到怎么办呢,那找运维,他们有设备,有能看到流量的设备,比如说现在一个流量,平时是这个样子的,突然有一天是这样,那是怎么回事,那有几个可能性,我这里以自己的经验说一下。
首先第一个是业务,正常业务,那有一些正常业务它有可能特殊,比如他over备个份,就一个月可能备份一次,或者就这种数据库服务器或者一些其他的文件服务器。那第二种可能服务器就是被人入侵了,别人在往外发流量发数据包,也就是说比如你们有大量的数据库,有大量的敏感数据,别人再往出传,流量分为上行流量和下行流量,那这个时候上行对应着上传,下行对应着下载,突然高出几倍,说明什么,说明你再往外发数据或者大量的在下载数据,那这时候肯定不正常。那就需要查一下,要安装一下这条命令。我这里已经安装了,所以就不再卸载了,就是大家执行一条这条命令,首先你要看流量,它要对应一个网卡,我们来看一下如何查看网卡,这么一条简单的命令,还有一条命令,IP can.如果你在大量的上传或者下载都看得见,他有特别频繁的请求某一个IP网络连接。刚才我们看的是也是包含着网络连接,那咱们怎么特意去看一下,比如我现在想看我的服务器上都运行了哪些网络连接,那每一个网络连接背后都说明你的服务器在向外发数据,或者别人在请求你,你再回包。第二点这里就是所有的监听的端口和链接。我给大家整理了一个表,那这个表看对应着这里打开这个链接,就是说这条链接正在被打开着,这个如果有经验的话,大家知道22端口是SSH,也就是我现在连接的,它正在打开着,那3306被监听着,listen,监听端口等待远程连接,也就是3306是mysql,其他几个状态大家对应着去看。