一句话shell命令

2

一句话shell命令

获取指定进程cpu占用最高的线程的线程栈

tid=66372;pid=$(top -H -n 1 -p $tid -o "%CPU" | grep java |head -n 2|awk 'BEGIN{check=0} {split($0,arr,/[[:space:]]+/) ;if(arr[2]=="'$tid'"){next;};if(check == 0){check=1;print arr[2] } }'|xargs printf "%x");time=$(date +%Y:%m:%d_%H:%M:%S);echo $pid;jstack -l $tid |grep -A 20 $pid > jstack.$tid.$pid.$time.txt

查看用户创建的进程数

ps h -Led -o user | sort | uniq -c|sort -rn

查找jar冲突

find -name "*.jar" | awk '{cmd="unzip -l "$0; system(cmd)}'|grep ".class" | awk '{print($4)}' |sort|uniq -c|sort -nr| awk '{if($1 > 1){cmd="find . -name \"*.jar\" -type f|xargs -I {} zipinfo {} | egrep \"Archive:|"$2"\" | grep -B 1 \""$2"\"";print("###########################################");print(cmd);system(cmd)}}' > confict.txt

单次定位:

echo "2 cn/com/agree/afa/redis/client/serialization/impl/jdk/JdkSerialization.class"|awk '{cmd="find . -name \"*.jar\" -type f|xargs -I {} zipinfo {} | egrep \"Archive:|"$2"\" | grep -B 1 \" "$2"\"";print("###########################################");print(cmd);system(cmd)}'

查找是否有指定的包

find -name "*.jar" -type f|xargs -I {} zipinfo {} |grep " afa/"

扫描jar包是否损坏:

find -name "*.jar" | awk '{cmd="zipinfo -h "$0; system(cmd)}'1>/dev/null 2> badjars.err