From 1afcb5035de1344612a08a7f5db95c9fe9525b97 Mon Sep 17 00:00:00 2001 From: hengyunabc Date: Mon, 9 Sep 2019 14:45:16 +0800 Subject: [PATCH] update as.sh arthas-demo.jar arthas-boot.jar --- arthas-boot.jar | Bin 98637 -> 110700 bytes arthas-demo.jar | Bin 3743 -> 3740 bytes as.sh | 167 ++++++++++++++++++++++++++++-------------------- 3 files changed, 99 insertions(+), 68 deletions(-) diff --git a/arthas-boot.jar b/arthas-boot.jar index 8c0c983cfbbd789c5610b96bee606eba5f698a95..e1a7e2e41a622723333aed9b022f8d8f1a17aaa4 100644 GIT binary patch delta 36616 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 BZ503j delta 24748 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 JMZQ}x{tt>82QdHu diff --git a/arthas-demo.jar b/arthas-demo.jar index ac3264bf2f37c0090540387db4dbb0b4b422833f..cf90746741e0fda95c42a802108effd2aaf905b7 100644 GIT binary patch delta 1278 zcmbO)J4co;z?+$civa{wVm19I@+q?@gJ@H=dT%Z!LjjlXjdv8qJtW*&Px{4n9BNpw zW2#x^%mh2?MBQ=3Klp|-=Jx3B2!iN#_Q zR<D~8G|EqI)H)r1E{Hz{PWh38R!8*sc@7&}$F%DFLnceu- zl&5#H5`$s_STfl?ZKdb<8Z#}dWjH1~L(G*~y~q6ULMfY%VR~;K?yFp~DmV7(eWClS zr3wQ5Y^N+b8tZB5@Ro&Fv_!lJiIxc@dg{1 zHQAa&6T-;gu!b;}bGWm3$7uRb{>0%{e=+a2f=KQ6aFJa#i( z^AMBgDtW1%V zP4v9hFj;MhD~nh9?PuNxTi1Fr{AQWfz%5$g)_*0kr{`892Zvf9UzD*`!}(kLp8lD& z=A`K2-wS&+3WAcIzkOnKI?B0_*Xn?pv6a%KT&pj(^@)ooY~B0iAkUQ|olcKwHQM+tJ{kQ)Q z(OYwK<)+e)?_xg%KF)pJ@+AAyyo>*8qa+SYHBw3ZZ>KxO?S|9LN&o+R)ck+oMW$`? zf=zebZ(7WBYhl0cRlnsEdsU^yuTw8Sobx&I(M{6!aD5N^oD~H!%Wke%ad5@lFUFZX zDW~paeweraPR^#IKY#Unm#P<0Ppaep^-E3v`J9bE`we9U>*xHf^D|bt6hAwCKO-oO zy!YUFeF>O8uCYSWhzJ7*5Q35hI8#6gYlg|j+(Gr<&YlnE@Y4-2*bri1vc<@7i;+Qi z0UuwWfsw(MCtBXRTIbH3-)wr#_=@o(Fa1;cx*vQt`kp&~RonB7zt@@T-a1+*J#?Ni z1Ga^^QTr!!7N1GRvJ>dy^ zvK5bM5V~W5K7j%OhPRFyK+mP5=H}}|Ohx$b-jNd?v)LFJEO;0ggkd^>^pZyJ$p?9q zV$hA{hpPb@tIol|;OiRVsO#zHrk|TwmYN5(0MpqZeTpcWLnhnv8YrM!po^krGRGuN z{mJ`yc@#id5ILGm;Oan*y$4ihHd%p>2W%d4Fj}Li6XKr4X*{`}Pm1k1H%I~i#*E1Q delta 1206 zcmbOuJ71PBz?+$civa{&7q0i4$fwNW0-{aT>Q84m8H%_*Z~Wt2r*Ke#^`wvN6zv#| zEf!Ogi*lMOV3?}Kr>+hxjbc&yvFEnt&il&{6>O9F<8Y74qG>X}?k zn6xT0E+uN!E1mxrlDX7!cKGYVjIU4s=&F#JT_G_?_n3gEo}XLAnf=QR4__<#X1joQ zcf$XTb7GTLZYp-WF-gSnrc>Z|w)E3o4lnYIKQpdzzj&DObL(ek-}eH3>+byfRkKV@ z+V=8$f%o^TI3o3wx1=2r_5AAaPgtnv*iFd*Z*~s}^`2Y5IPOI=Dpvh?oVHr^=*joOGu&klew~%BT@#V} zJ?Ov3@h1~gOPW+8nf+!>5EImxn>*XTS}(_!>4y6TmY5X>jH{Nh85+G}P*RxTVwrLF z1&7?0+S5OIH9Zc#D9lmjnsepGgvB)t0fkN(&3qe9_V{(A%05EX6WFpW zr@E+kze!&G<;F)x$qVz>d$CnaFx#bT_=Hh%VQ|5vlrtY>(ob#sf6iz9^Qw7^jxUi~ zy7YAL$C}^zPY=y%)`}K?f6r9j^xifTAcKE$wYiX!Ll@0ANp4!xVI`SW|e z{HN_bao4!nv~KU6-a9$drJ`W1OTG5~h1c5`>(AkPf5u1Vzvg1~AMGC-ghl%f+enL= zN|a8hQ|z7SGqYT3&-3%f#vwO7nnEcV!h3DJhkCcfX&?70Sx%oh!fs8=-<=&AK9<$jP7%X@g7=#h#F)V2e zoV<@mNgkB`k%Sre;T!>mw~o4#|MSQ}a)ctU6jKz( +# DESCRIPTION +# Resolves to its ultimate target, if it is a symlink, and +# prints its canonical path. If it is not a symlink, its own canonical path +# is printed. +# A broken symlink causes an error that reports the non-existent target. +# LIMITATIONS +# - Won't work with filenames with embedded newlines or filenames containing +# the string ' -> '. +# COMPATIBILITY +# This is a fully POSIX-compliant implementation of what GNU readlink's +# -e option does. +# EXAMPLE +# In a shell script, use the following to get that script's true directory of origin: +# trueScriptDir=$(dirname -- "$(rreadlink "$0")") +rreadlink() ( # Execute the function in a *subshell* to localize variables and the effect of `cd`. + + target=$1 fname= targetDir= CDPATH= + + # Try to make the execution environment as predictable as possible: + # All commands below are invoked via `command`, so we must make sure that + # `command` itself is not redefined as an alias or shell function. + # (Note that command is too inconsistent across shells, so we don't use it.) + # `command` is a *builtin* in bash, dash, ksh, zsh, and some platforms do not + # even have an external utility version of it (e.g, Ubuntu). + # `command` bypasses aliases and shell functions and also finds builtins + # in bash, dash, and ksh. In zsh, option POSIX_BUILTINS must be turned on for + # that to happen. + { \unalias command; \unset -f command; } >/dev/null 2>&1 + [ -n "$ZSH_VERSION" ] && options[POSIX_BUILTINS]=on # make zsh find *builtins* with `command` too. + + while :; do # Resolve potential symlinks until the ultimate target is found. + [ -L "$target" ] || [ -e "$target" ] || { command printf '%s\n' "ERROR: '$target' does not exist." >&2; return 1; } + command cd "$(command dirname -- "$target")" # Change to target dir; necessary for correct resolution of target path. + fname=$(command basename -- "$target") # Extract filename. + [ "$fname" = '/' ] && fname='' # !! curiously, `basename /` returns '/' + if [ -L "$fname" ]; then + # Extract [next] target path, which may be defined + # *relative* to the symlink's own directory. + # Note: We parse `ls -l` output to find the symlink target + # which is the only POSIX-compliant, albeit somewhat fragile, way. + target=$(command ls -l "$fname") + target=${target#* -> } + continue # Resolve [next] symlink target. + fi + break # Ultimate target reached. + done + targetDir=$(command pwd -P) # Get canonical dir. path + # Output the ultimate target's canonical path. + # Note that we manually resolve paths ending in /. and /.. to make sure we have a normalized path. + if [ "$fname" = '.' ]; then + command printf '%s\n' "${targetDir%/}" + elif [ "$fname" = '..' ]; then + # Caveat: something like /var/.. will resolve to /private (assuming /var@ -> /private/var), i.e. the '..' is applied + # AFTER canonicalization. + command printf '%s\n' "$(command dirname -- "${targetDir}")" + else + command printf '%s\n' "${targetDir%/}/$fname" + fi +) + +DIR=$(dirname -- "$(rreadlink "${BASH_SOURCE[0]}")") ############ Command Arguments ############ @@ -66,6 +128,11 @@ COMMAND= # batch file to execute BATCH_FILE= +# tunnel server url +TUNNEL_SERVER= +# agent id +AGENT_ID= + ############ Command Arguments ############ # if arguments contains -c/--command or -f/--batch-file, BATCH_MODE will be true @@ -150,68 +217,6 @@ check_permission() } -# SYNOPSIS -# rreadlink -# DESCRIPTION -# Resolves to its ultimate target, if it is a symlink, and -# prints its canonical path. If it is not a symlink, its own canonical path -# is printed. -# A broken symlink causes an error that reports the non-existent target. -# LIMITATIONS -# - Won't work with filenames with embedded newlines or filenames containing -# the string ' -> '. -# COMPATIBILITY -# This is a fully POSIX-compliant implementation of what GNU readlink's -# -e option does. -# EXAMPLE -# In a shell script, use the following to get that script's true directory of origin: -# trueScriptDir=$(dirname -- "$(rreadlink "$0")") -rreadlink() ( # Execute the function in a *subshell* to localize variables and the effect of `cd`. - - target=$1 fname= targetDir= CDPATH= - - # Try to make the execution environment as predictable as possible: - # All commands below are invoked via `command`, so we must make sure that - # `command` itself is not redefined as an alias or shell function. - # (Note that command is too inconsistent across shells, so we don't use it.) - # `command` is a *builtin* in bash, dash, ksh, zsh, and some platforms do not - # even have an external utility version of it (e.g, Ubuntu). - # `command` bypasses aliases and shell functions and also finds builtins - # in bash, dash, and ksh. In zsh, option POSIX_BUILTINS must be turned on for - # that to happen. - { \unalias command; \unset -f command; } >/dev/null 2>&1 - [ -n "$ZSH_VERSION" ] && options[POSIX_BUILTINS]=on # make zsh find *builtins* with `command` too. - - while :; do # Resolve potential symlinks until the ultimate target is found. - [ -L "$target" ] || [ -e "$target" ] || { command printf '%s\n' "ERROR: '$target' does not exist." >&2; return 1; } - command cd "$(command dirname -- "$target")" # Change to target dir; necessary for correct resolution of target path. - fname=$(command basename -- "$target") # Extract filename. - [ "$fname" = '/' ] && fname='' # !! curiously, `basename /` returns '/' - if [ -L "$fname" ]; then - # Extract [next] target path, which may be defined - # *relative* to the symlink's own directory. - # Note: We parse `ls -l` output to find the symlink target - # which is the only POSIX-compliant, albeit somewhat fragile, way. - target=$(command ls -l "$fname") - target=${target#* -> } - continue # Resolve [next] symlink target. - fi - break # Ultimate target reached. - done - targetDir=$(command pwd -P) # Get canonical dir. path - # Output the ultimate target's canonical path. - # Note that we manually resolve paths ending in /. and /.. to make sure we have a normalized path. - if [ "$fname" = '.' ]; then - command printf '%s\n' "${targetDir%/}" - elif [ "$fname" = '..' ]; then - # Caveat: something like /var/.. will resolve to /private (assuming /var@ -> /private/var), i.e. the '..' is applied - # AFTER canonicalization. - command printf '%s\n' "$(command dirname -- "${targetDir}")" - else - command printf '%s\n' "${targetDir%/}/$fname" - fi -) - # reset arthas work environment # reset some options for env reset_for_env() @@ -395,6 +400,7 @@ usage() Usage: $0 [-h] [--target-ip ] [--telnet-port ] [--http-port ] [--session-timeout ] [--arthas-home ] + [--tunnel-server ] [--agent-id ] [--use-version ] [--repo-mirror ] [--versions] [--use-http] [--attach-only] [-c ] [-f ] [-v] [pid] @@ -412,6 +418,8 @@ Options and Arguments: --use-http Enforce use http to download, default use https --attach-only Attach target process only, do not connect --debug-attach Debug attach agent + --tunnel-server Remote tunnel server url + --agent-id Special agent id -c,--command Command to execute, multiple commands separated by ; -f,--batch-file The batch file to execute @@ -424,9 +432,11 @@ EXAMPLES: ./as.sh ./as.sh --target-ip 0.0.0.0 ./as.sh --telnet-port 9999 --http-port -1 + ./as.sh --tunnel-server 'ws://192.168.10.11:7777/ws' + ./as.sh --tunnel-server 'ws://192.168.10.11:7777/ws' --agent-id bvDOe8XbTM2pQWjF4cfw ./as.sh -c 'sysprop; thread' ./as.sh -f batch.as - ./as.sh --use-version 3.1.1 + ./as.sh --use-version 3.1.2 ./as.sh --session-timeout 3600 ./as.sh --attach-only ./as.sh --repo-mirror aliyun --use-http @@ -519,6 +529,16 @@ parse_arguments() shift # past argument shift # past value ;; + --tunnel-server) + TUNNEL_SERVER="$2" + shift # past argument + shift # past value + ;; + --agent-id) + AGENT_ID="$2" + shift # past argument + shift # past value + ;; --use-http) USE_HTTP=true shift # past argument @@ -652,13 +672,13 @@ parse_arguments() # check the process already using telnet port if equals to target pid if [[ ($telnetPortPid) && ($TARGET_PID != $telnetPortPid) ]]; then echo "[ERROR] Target process $TARGET_PID is not the process using port $TELNET_PORT, you will connect to an unexpected process." - echo "[ERROR] 1. Try to restart as.sh, select process $telnetPortPid, shutdown it first." + echo "[ERROR] 1. Try to restart as.sh, select process $telnetPortPid, shutdown it first with running the 'shutdown' command." echo "[ERROR] 2. Try to use different telnet port, for example: as.sh --telnet-port 9998 --http-port -1" exit 1 fi if [[ ($httpPortPid) && ($TARGET_PID != $httpPortPid) ]]; then echo "Target process $TARGET_PID is not the process using port $HTTP_PORT, you will connect to an unexpected process." - echo "1. Try to restart as.sh, select process $httpPortPid, shutdown it first." + echo "1. Try to restart as.sh, select process $httpPortPid, shutdown it first with running the 'shutdown' command." echo "2. Try to use different http port, for example: as.sh --telnet-port 9998 --http-port 9999" exit 1 fi @@ -685,6 +705,16 @@ attach_jvm() java_command+=("${BOOT_CLASSPATH}") fi + local tempArgs=() + if [ "${TUNNEL_SERVER}" ]; then + tempArgs+=("-tunnel-server") + tempArgs+=("${TUNNEL_SERVER}") + fi + if [ "${AGENT_ID}" ]; then + tempArgs+=("-agent-id") + tempArgs+=("${AGENT_ID}") + fi + "${java_command[@]}" \ ${ARTHAS_OPTS} ${JVM_OPTS} \ -jar "${arthas_lib_dir}/arthas-core.jar" \ @@ -693,6 +723,7 @@ attach_jvm() -telnet-port ${TELNET_PORT} \ -http-port ${HTTP_PORT} \ -session-timeout ${SESSION_TIMEOUT} \ + "${tempArgs[@]}" \ -core "${arthas_lib_dir}/arthas-core.jar" \ -agent "${arthas_lib_dir}/arthas-agent.jar"