-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathdump.sh
101 lines (69 loc) · 1.62 KB
/
dump.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/bin/bash
: ${1?"Usage: '$0 \$pid' should supply a PID"}
JDK_BIN=""
PID=$1
DUMP_DATE=`date +%Y%m%d%H%M%S`
DUMP_DIR=`hostname`"-"$DUMP_DATE
function dot(){
echo -e ".\c"
}
if [ ! -d $DUMP_DIR ]; then
mkdir $DUMP_DIR
fi
echo -e "Dumping $PID to the $DUMP_DIR...\c"
# resource
lsof -p $PID > $DUMP_DIR/lsof-$PID.dump
dot
ss -antp > $DUMP_DIR/ss.dump 2>&1
dot
netstat -s > $DUMP_DIR/netstat-s.dump 2>&1
dot
iostat -x > $DUMP_DIR/iostat.dump 2>&1
dot
mpstat > $DUMP_DIR/mpstat.dump 2>&1
dot
vmstat 1 3 > $DUMP_DIR/vmstat.dump 2>&1
dot
free -h > $DUMP_DIR/free.dump 2>&1
dot
sar -n DEV 1 2 > $DUMP_DIR/sar-traffic.dump 2>&1
dot
sar -p ALL > $DUMP_DIR/sar-cpu.dump 2>&1
dot
sysctl -a > $DUMP_DIR/sysctl.dump 2>&1
dot
uptime > $DUMP_DIR/uptime.dump 2>&1
dot
ps -ef > $DUMP_DIR/ps.dump 2>&1
dot
dmesg > $DUMP_DIR/dmesg.dump 2>&1
dot
top -Hp $PID -b -n 1 -c > $DUMP_DIR/top-$PID.dump 2>&1
dot
# java
kill -3 $PID
dot
${JDK_BIN}jinfo $PID > $DUMP_DIR/jinfo.dump 2>&1
dot
${JDK_BIN}jstack $PID > $DUMP_DIR/jstack.dump 2>&1
dot
${JDK_BIN}jstat -gcutil $PID > $DUMP_DIR/jstat-gcutil.dump 2>&1
dot
${JDK_BIN}jstat -gccapacity $PID > $DUMP_DIR/jstat-gccapacity.dump 2>&1
dot
${JDK_BIN}jmap $PID > $DUMP_DIR/jmap.dump 2>&1
dot
${JDK_BIN}jmap -heap $PID > $DUMP_DIR/jmap-heap.dump 2>&1
dot
${JDK_BIN}jmap -histo $PID > $DUMP_DIR/jmap-histo.dump 2>&1
dot
${JDK_BIN}jmap -dump:format=b,file=$DUMP_DIR/heap.bin $PID > /dev/null 2>&1
dot
# advance
if [ ! -f $DUMP_DIR/jmap-heap.dump ]; then
gcore -o $DUMP_DIR/core $PID
dot
#${JDK_BIN}jhsdb jmap --exe ${JDK}java --core $DUMP_DIR/core --binaryheap
fi
echo "OK!"
echo "DUMP: $DUMP_DIR"