linux怎么查看某个进程执行的文件路径

引言

最近自己的服务器被一个名为xmrig的挖矿程序挖矿了,想查看这个进程的内容,我们首先得找到这个东西,下面就是根据进程名称查找所在目录的方法:

linux下进程运行后,进程信息存储在/proc/进程id 目录下面,进程id查看命令 ps -ef | grep 进程名,vi /proc/进程id/environ 搜索PWD字段,则是该进程运行所在目录
附属一个保守的解决方法:

挖矿病毒xmrig一般在cpu比较闲的时候会触发,并且会占用cpu 99%,造成本机资源极大浪费。

在网上搜了半天,没有发现好的解决办法,否则就只能重装操作系统了。


因为重装操作系统,损失太大,所以这里我想了一种保守疗法。

挖矿病毒有个规律,它并不是一直启动的,而且停止后,还会好长一段时间才能再运行。

根据这个特点,我做一个定时任务,定时检测xmrig,如果发现有这个进程在运行就把它杀掉。


具体实现如下:

1、实现脚本killprocess.sh,发现进程并杀掉

#!/bin/sh


NAME=$1
echo $NAME
#ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
CPU=`ps -aux | grep kworker | sort -rn -k +3 | head -1 | awk {'print $3'} | awk -F. '{print $1}'`
ID=`ps -aux | grep kworker  | sort -rn -k +3 | head -1 | awk {'print $2'}`
echo $CPU
echo $ID
echo "---------------"
sleep 1s
if [ $CPU -ge 95 ]; then
   echo "killed $ID"
   kill -9 $ID
fi


2、crontab设置默认1分钟定时执行

crontab -e

* * * * * /etc/init.d/killprocess.sh


OK,世界从此安静了!

你可能感兴趣的:(@运维)