October 8, 2018

记一次服务器CPU跑满盘查

其实没有什么特别的。服务器总是报警CPU跑满100%,上服务器用top命令查看,排第一名的就是罪魁祸首。

img

首先要找出这个程序是在哪里,开始想使用which找出来

which .xm.log

结果什么都没有输出。于是只能全局搜索了

find / -name .xm.log

然后果然找到了在/var/tmp/目录下

img

果断过去把程序删掉。这下应该平静了吧,然而并没有,过了一会CPU又报警100%再上服务器去看,果然这个程序又跑起来了,还是在同一个路径。肯定有一个守护程序在守护它。列举所有的进程,用pstree打印进程树

ps aux
pstree

没有发现什么奇怪的进程,那于是肯定藏在crontab或者system service中了。先查找system service,列举service,没有发现什么奇怪的

systemctl

然后查看crontab,看到一个非常奇怪的定时任务

crontab -l

img

查看了一下报警的时间,正好是31分,等待下一个30分钟再看服务器

等待的时间比较无聊,把.syslog下载下来反编译一波看看,很奇怪为什么这个文件没有办法被objdump出来

好了,整点的时候他们又被重新启动了,pstree如下

img

感觉这个已经实锤了,删除掉crontab中的内容之后,.xm.log没有被重启,CPU也没有跑满了。

(这种东西是如何进入到服务器的)