说明:记录工作的内容,会介绍一下脚本思路,具体使用应该根据实际情况进行调整。脚本不用华丽,能解决问题就好。
场景:一台服务器上部署了多个java应用。本场景是有用wrapper封装的应用,也有用jar启动的应用。
#获取wrapper封装的程序
echo "*********************************"
echo "wrapper 封装的程序"
#获取的是父进程的列表,正常启动的java应用程序的父进程id应该是1,非1的父进程id说明就是#wrapper封装过的
ppid_list=`ps -ef |grep java | grep -v grep |awk '{print $3}'`
for ppid in $ppid_list
do
if [[ $ppid != 1 ]]; then
#grep -w 匹配的是单词,要完全一致才能有值
jar_dir=`ps aux |grep -v grep |grep -w " $ppid"|awk '{print $11}'|awk -F "/bin/" '{print $1}'`
echo $jar_dir
fi
done
#获取-jar启动的应用程序
echo "*********************************"
echo "-jar 启动的程序"
#sed要加属性-r,代表使用扩展正则,只有扩展正则才能使用组(),通过\1取到值
ps -ef |grep "\-jar" |grep -Ev 'grep|sed' |sed -r "s/.*\ -jar\ (.*)\.jar.*/\1/g"
windows和unix编码问题解决:
删除脚本中所有中文
进入linux环境后,使用vim jiaoben.sh
:set fileformat=unix 或者 :set ff=unix 然后 :wq保存
查看编码信息: cat -A jiaoben.sh
输出: