shell脚本输出JAVA线程堆栈和JVM内存使用情况


shell脚本输出JAVA线程堆栈和JVM内存使用情况

#!/bin/bash SERVER_NAME=XXX DEPLOY_DIR=/user_projects/domains/${SERVER_NAME}/ #启动语句中能识别应用的关键字 outDir=/u02/coreprd/corelog/${SERVER_NAME}/ #输出路径 #awk的用法,一行中的打印第二个参数,表示进程ID PIDS=`ps -ef | grep  java | grep "${DEPLOY_DIR}" |awk '{print $2}'` echo $PIDS #校验进程ID是否存在 if [ -z "$PIDS" ]; then
    echo "ERROR: The $SERVER_NAME does not started" exit 1
fi #校验获取到的PID是否唯一 pid_len=${#PIDS[*]} if [ ${pid_len} != 1 ]; then
    echo "ERROR: The $SERVER_NAME length is ${pid_len} . The PID length must be 1,please correct the shell script " exit 1
fi #定义输出文件的路径 current=`date +"%Y%m%d%H%M_%S"` filePath="${outDir}jstack_${SERVER_NAME}_${PIDS}_${current}.log"echo "Doing jstack the $SERVER_NAME ..."
for PID in $PIDS ; do #先用jstack命令打印出堆栈信息 jstack -l $PID > $filePath echo "jstack dump Success!"
    echo "dump File: ${filePath}" #睡眠1秒 sleep 1 #使用jmap -heap 在文件末尾追加JVM内存信息。 jmap -heap  $PID >> $filePath echo "jmap -heap Success!"
done

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM