日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jstack 脚本 自动日志_用jstack自动化捕抓异常java代码脚本

發布時間:2024/9/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jstack 脚本 自动日志_用jstack自动化捕抓异常java代码脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#!/bin/bash

date=` date +%y%m%d-%H%M`

pid=`top -bn1 |grep java | awk '{print $1 "\t" $9}' |head -1 | cut -f 1`

pidCPU=`top -bn1 |grep java | awk '{print $1 "\t" $9}' |head -1 | cut -f 2`

# java home

if test -z $JAVA_HOME #est -z $JAVA_HOME 是一個判斷表達式,用于判斷$JAVA_HOME的值是否為空字符串

then

JAVA_HOME='/data/services/jdk1.7.0_79/'

fi

# checking pid

if test -z "$($JAVA_HOME/bin/jps -l | cut -d '' -f 1 | grep $pid)" #jps -l可以列出本機所有java進程的pid,cut -d只切割pid這一列。

then

echo "process of $pid is not exists" #查找我們要找的進程是否存在

exit

fi

#line number

if test -z $linenum #判斷linenum是否為空字符串,來定義打印多少行

then

linenum=10

fi

stackfile=stack$pid.dump #查異常代碼文件

threadsfile=threads$pid.dump #線程id

# generate java stack

$JAVA_HOME/bin/jstack -l $pid >> $stackfile #用jstack把異常代碼輸入到參數文件$pidpid.dump里面去

ps -mp $pid -o THREAD,tid,time | sort -k2r | awk '{if ($1 !="USER" && $2 != "0.0" && $8 !="-" && $9) print "線程號:"$8 "; CPU負載:" $2;}' >threadsfile.txt #查找出滿足第一列是>否為USER&&第二列是否為空值&&第八列是否為-的話就輸出第八列的pid保存到threadsfile.txt文件內

ps -mp $pid -o THREAD,tid,time | sort -k2r | awk '{if ($1 !="USER" && $2 != "0.0" && $8 !="-" && $9) print $8;}' | xargs printf "%x\n" >> $threadsfile #ps -mp命令是在當前用戶下>,列出pid包含的所有線程,本地id,時間,sort 的選項k2是指定第2排序的欄位,r是倒序排列,{if ($1 !="USER" && $2 != "0.0" && $8 !="-") print $8;}是滿足第一列是否為USER&&第二列是否為>空值&&第八列是否為-的話就輸出第八列的pid,然后打印出來并轉成16進制輸出到threads$pid.dump文件

tids="$(cat $threadsfile)" #設置tids變量為threads$pid.dump文件

for tid in $tids #然后循環打印出來我們要找的異常代碼

do

echo "------------------------------ ThreadId (進程號為:$pid;CPU線程號十六進制為:$tid;) ------------------------------"

cat $stackfile | grep 0x$tid -A $linenum

done

參考 http://www.javatang.com

總結

以上是生活随笔為你收集整理的jstack 脚本 自动日志_用jstack自动化捕抓异常java代码脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。