背景:已经可以在jenkins打包部署,但不能显示springboot启动日志,导致springboot启动报错时,并不知道具体原因,还需要登录linux系统去查看原因。
主要步骤:
1. 开启远程服务器日志
2. 利用sed命令 结束tail命令来防止一直打印日志。
tail -fn 0 --pid=`ps uxh|grep 'sed[[:space:]]\/doc.html'|awk '{print $2}'|sort -nr|head -1` $4/mtc.log |sed /doc.html/q
这里需要替换的是
$4/mtc.log 这个是需要打印的日志
doc.html 这个是要替换的字符串,这里是监听的doc.html的字符串就停止
完整脚本:
path=$4/$2
if test $path = '/';then
path=/xxx
fi
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep $path | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
#!kill -9 强制终止
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
mv $4/$1 $4/$2
nohup java -jar -Xms1024M -Xmx1550M -XX:PermSize=64M -XX:MaxPermSize=128M $4/$2 --spring.profiles.active=$3 > $4/mtc.log 2>&1 &
tail -fn 0 --pid=`ps uxh|grep 'sed[[:space:]]\/doc.html'|awk '{print $2}'|sort -nr|head -1` $4/mtc.log |sed /doc.html/q