加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell脚本实现进程对比

发布时间:2020-12-15 23:24:00 所属栏目:安全 来源:网络整理
导读:一.目的 ? 有时候我们会遇到在linux服务器上ps的进程和/proc里进程号不一致的情况,这个时候我们需要以/proc为标准来看ps里没有的进程,于是编写了下面的脚本 二.代码 直接贴出代码 #!/bin/ bash#Date: 2018 - 10 - 6 #Author:Id3al#Func:通过脚本将proc下的

一.目的

? 有时候我们会遇到在linux服务器上ps的进程和/proc里进程号不一致的情况,这个时候我们需要以/proc为标准来看ps里没有的进程,于是编写了下面的脚本

二.代码

直接贴出代码

#!/bin/bash
#Date:2018-10-6
#Author:Id3al
#Func:通过脚本将proc下的进程号与ps出来的进程号进行对比,可用于应急响应里隐藏进程的查找

#首先取出proc下的所有进程号
ls_Proc(){
    n=0
    for i in `ls /proc`
    do
        if [[ $i = [0-9]* ]] #通过正则匹配出数字
        then
            echo $i >> process.txt
            let n++
        fi
    done
}

ls_Ps(){
    for proc in `ps aux | tr -s  | cut -d   -f 2` #利用tr对多个空格进行压缩成一个空格
    do
        if [[ $proc = [0-9]* ]]
        then
            echo $proc >> ps_proc.txt
        fi
    done
}

compare_ps_proc(){
    #cat ps_proc.txt | sort -n > ps_proc.txt
    cat process.txt | sort -n > process.txt  #利用sort对文件内容进程排序,以便于后面使用comm命令进行对比
    compare_result=`comm -3 --nocheck-order process.txt ps_proc.txt` #comm -3  文件1 文件2  打印在文件1 中有,而文件2 中没有的行。反之亦然
    echo $compare_result >> com_result.txt
}

`> process.txt && > ps_proc.txt && > com_result.txt`
ls_Proc
ls_Ps
compare_ps_proc

上面的代码里process.txt存的是/proc下的进程号,ps_proc存的是ps出来的进程号,代码不是很难

总结:上面的脚本执行后会在com_result.txt文件里存/proc下有但是ps没有的进程号,但是脚本执行的结果需要自行排查是否准确

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读