`#!/bin/bash
TIMESTAMP=KaTeX parse error: Expected 'EOF', got '#' at position 24: …%Y%m%d%H%M%S") #̲#获取jmap日志和堆内存 f…(ssh root@${MASTER_IP} kubectl -n $1 exec -it $2 – ps -ef|grep java|sed -n ‘1p’|awk ‘{print $2}’)
local podname=
2
l
o
c
a
l
l
o
g
n
a
m
e
=
"
2 local log_name="
2locallogname="{podname: -5}
T
I
M
E
S
T
A
M
P
"
l
o
c
a
l
h
e
a
p
n
a
m
e
=
"
{TIMESTAMP}" local heap_name="
TIMESTAMP"localheapname="{podname: -5}
T
I
M
E
S
T
A
M
P
.
h
e
a
p
"
s
s
h
r
o
o
t
@
{TIMESTAMP}.heap" ssh root@
TIMESTAMP.heap"sshroot@{MASTER_IP} kubectl -n $1 exec -it
2
−
−
j
m
a
p
−
d
u
m
p
:
f
i
l
e
=
/
t
m
p
/
2 -- jmap -dump:file=/tmp/
2−−jmap−dump:file=/tmp/log_name
p
i
d
s
s
h
r
o
o
t
@
pid ssh root@
pidsshroot@{MASTER_IP} kubectl -n $1 exec -it $2 – jmap -heap
p
i
d
>
/
t
m
p
/
pid >/tmp/
pid>/tmp/heap_name
local tar_name="
l
o
g
n
a
m
e
.
t
a
r
"
s
s
h
r
o
o
t
@
log_name.tar" ssh root@
logname.tar"sshroot@{MASTER_IP} kubectl -n $1 exec -it
2
−
−
t
a
r
−
c
z
v
f
/
t
m
p
/
2 -- tar -czvf /tmp/
2−−tar−czvf/tmp/tar_name /tmp/
l
o
g
n
a
m
e
s
s
h
r
o
o
t
@
log_name ssh root@
lognamesshroot@{MASTER_IP} kubectl -n $1 cp
2
:
t
m
p
/
2:tmp/
2:tmp/tar_name /tmp/
t
a
r
n
a
m
e
s
c
p
r
o
o
t
@
tar_name scp root@
tarnamescproot@{MASTER_IP}:/tmp/$tar_name /tmp
}
##获取jstat状态
function command_jstat(){
local pid=
(
s
s
h
r
o
o
t
@
(ssh root@
(sshroot@{MASTER_IP} kubectl -n $1 exec -it $2 – ps -ef|grep java|sed -n ‘1p’|awk ‘{print $2}’)
local podname=
2
l
o
c
a
l
g
c
n
a
m
e
=
"
2 local gc_name="
2localgcname="{podname: -5}
T
I
M
E
S
T
A
M
P
.
g
c
"
l
o
c
a
l
g
c
u
t
i
l
n
a
m
e
=
"
{TIMESTAMP}.gc" local gcutil_name="
TIMESTAMP.gc"localgcutilname="{podname: -5}
T
I
M
E
S
T
A
M
P
.
g
c
u
t
i
l
"
s
s
h
r
o
o
t
@
{TIMESTAMP}.gcutil" ssh root@
TIMESTAMP.gcutil"sshroot@{MASTER_IP} kubectl -n $1 exec -it $2 – jstat -gc
p
i
d
>
/
t
m
p
/
pid >/tmp/
pid>/tmp/gc_name
ssh root@${MASTER_IP} kubectl -n $1 exec -it $2 – jstat -gcutil
p
i
d
>
/
t
m
p
/
pid >/tmp/
pid>/tmp/gcutil_name
}
echo “----------------------------start-------------------”
echo “1 集群1”
echo “2 集群2”
echo “3 集群3”
read -p “请输入序号选择集群:” choice
case $choice in
1)
MASTER_IP=“xxx.xxx.xxx.xxx”
;;
2)
MASTER_IP=“=“xxx.xxx.xxx.xxx””
;;
3)
MASTER_IP=“=“xxx.xxx.xxx.xxx””
;;
*)
echo “选择的序号不存在”
exit 1
;;
esac
namespace=yq e '.namespace' $1
podname=yq e '.podname' $1
command_log $namespace $podname
command_jstat $namespace $podname
执行:
./parse.yaml ipma.yaml
ipma.ymal
namespace: xxxxx
podname: xxxxxx在这里插入代码片`