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没有的进程号,但是脚本执行的结果需要自行排查是否准确 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |