美文网首页
和服务器挖矿程序拼到底!

和服务器挖矿程序拼到底!

作者: YYYYYY25 | 来源:发表于2020-11-12 21:11 被阅读0次

Title: 和挖矿程序拼到底!

技术博客已迁移至个人页,欢迎查看 yloopdaed.icu

您也可以关注 JPP - 这是一个Java养成计划,需要您的加入。


前言

服务器被挖矿了,CPU占用一直是100%。

没有过多深入研究,照着网上几个处理方式执行了一些命令。无果

同事给出的建议就是重装系统,但是我偏不

我要和他拼到底!

由于是在太影响使用了,先写个Shell脚本,每2小时清理一次。以后有时间再收拾你!

Shell思路

由于太久没写过Shell了,所以很简陋,以后再优化。

大概思路如下:

1 获取 [用户] 的进程号

2 遍历进程号,获取其对应的CPU信息

3 判断CPU使用量是否大于85,如果大于,则杀死该进程

#!/bin/bash

#向上取整
function ceil(){
  floor=`echo "scale=0;$1/1"|bc -l ` # 向下取整
  add=`awk -v num1=$floor -v num2=$1 'BEGIN{print(num1<num2)?"1":"0"}'`
  echo `expr $floor  + $add`
}

#定时清理git用户开辟的进程

#用户名
USERNAME="root"
THRESHOLD="85"
TIME=$(date "+%Y-%m-%d %H:%M:%S")

#获取git用户的所有进程号
PIDS=`ps -ef | grep $USERNAME | grep -v grep | awk '{print $2}'`

#循环PID
for PID in $PIDS; do
    #statements
    CPU_DATA=`pgrep java | xargs ps -u --pid $PID | awk '{print $3}'`
    for C in $CPU_DATA; do
        #如果CPU占用大于80%,杀死进程
        if [[ $C != '%CPU' ]]; then
            CEIL_C=`ceil $C`
            if [[ CEIL_C -gt $THRESHOLD ]]; then
                echo $TIME >> mining.log
                echo "git 用户的 $PID 已占用CPU $C" >> touch mining.log
                kill -9 $PID
                echo "已将 $PID 进程 killed" >> touch mining.log
            fi
        fi
    done
done

相关文章

网友评论

      本文标题:和服务器挖矿程序拼到底!

      本文链接:https://www.haomeiwen.com/subject/wnqmbktx.html