java dump 脚本

#!/bin/bash

# grep java 替换成需要过滤出的进程的关键字
PID=ps -ef |grep java |grep -v grep |awk '{print $2}'
mkdir -p /tmp/${PID}

echo '获取线程快照信息'
jstack ${PID} > /tmp/${PID}/${PID}.jstack
echo '以hprof二进制格式转储Java堆'
jmap -dump:format=b,file=/tmp/${PID}/${PID}.dump ${PID}
echo '打印一个堆的摘要信息,包括使用的GC算法、堆配置信息和generation wise heap usage'
jmap -heap ${PID} > /tmp/${PID}/${PID}.heap
echo ' 打印堆的柱状图。其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名'
jmap -histo ${PID} > /tmp/${PID}/${PID}.histo

echo '文件导出到:/tmp/'${PID}' 目录中'