jenkins通过shell将jar包启动日志输出在控制台

目的,通过控制台输出java的jar启动日志,查看服务是否成功启动。并通过脚本来调节,避免日志一直打印不退出,导致jenkins job hang住。

 

 

于是在jenkins启动的时候加了构建后shell 脚本 启动顺序如下

1 启动第一个杀死tail命令的脚本kill_tailf.sh,匹配到日志出现Started App in 或者JVM running 成功退出  或者日志打印时间超过46秒失败退出

2 启动tail 的脚本tailf。sh

脚本如下 我这里因为部署环境不一样所以 传入了参数。自己用的话可以写死。就不需要传入参数了

这个execute.log是项目的日志名称

boole_log和boole_jvm_log是会生成的

 

kill_tailf.sh

#!/bin/sh

# @Time    : 2019-10-24

# @Author  : jiaminxu

# @Name  :kill_tailf.sh

# @Description  :  用于检测 日志里是否包含Started .* second 判断项目是否成功启动 配合tailf.sh一起使用

 

 

#项目日志文件 execute.log

des_log=$1/execute.log

echo "项目日志为:$des_log"

 

second=0

 

echo "" > $1/bin/boole_log

echo "" > $1/bin/boole_jvm_log

 

 

while true

do

 

    sum=`cat ${des_log} |grep 'Started App in' |wc -l`

    sum_jvm=`cat ${des_log} |grep 'JVM running for' |wc -l`

    echo "[tags] sum: ${sum} second: $second sum_jvm: $sum_jvm"

    echo "${sum}" >$1/bin/boole_log

    echo "${sum_jvm}" >$1/bin/boole_jvm_log

 

    if [ ${second} -ge 46  ];then

       echo 部署等待时间过长 退出部署

       ps -ef |grep "tailf ${des_log}" |grep -v grep|awk '{print $2}' |xargs kill

       break

    fi

 

      

    if [ ${sum} -gt 0 ] || [ ${sum_jvm} -gt 0  ];then

       echo "[tags] sum ${sum} "

        ps -ef |grep "tailf ${des_log}" |grep -v grep|awk '{print $2}' |xargs kill

        echo [tags] 项目启动花费 $second 秒   

        break

    fi

    second=$((second + 2))

    sleep 2

    echo [tags] 启动时长second $second

 

done

 

tailf.sh

#!/bin/sh

# @Time    : 2019-10-24

# @Author  : jiaminxu

# @Name  :tailf.sh

# @Description  : 判断此次部署是否成功 并打印java日志

 

 

# $1为job文件夹部署的位置

# 后台执行杀死

sh $1/bin/kill_tailf.sh  $1 &

 

# 执行tailf 查看日志

echo "执行shell命令: tailf $1/execute.log"

tailf $1/execute.log

 

echo [tags] tailf 命令已经成功退出

# 判断是否捕获到 Started .* second

sum=`cat $1/bin/boole_log`

sum_jvm=`cat $1/bin/boole_jvm_log`

 

if [ $sum -gt 0 ];then

       echo [tags] ------------

       echo [tags] 本次部署成功

       echo [tags] ------------

elif [ $sum_jvm -gt 0 ];then

       echo [tags] ------------

       echo [tags] 本次部署成功

       echo [tags] ------------

else

       echo [tags] ------------

       echo [tags] 本次部署失败

       echo [tags] ------------

 

fi

 

 

 

效果如下 对以上的脚本稍作改动.判断了是否是生产的网关

 

 

 

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷来辣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值