通用的java部署shell

阅读前提:有shell基础,有需要请查看上一篇文章

1、记一次部署多个springboot项目的通用shell,通过将变化内容转换为变量实现一个简单的通用,敏感内容已经屏蔽

#!/bin/sh
#部署路径
DEPLOY_DIR=/data/admin/app/
#服务名
SERVER=$1
ACTION=$2
function deploy_java() {
        echo "start to deploy $1 ..."
        SERVER_NAME=$1
        JAR_NAME=$2
        DO=$3
        ## 服务所在目录
        SERVER_DIR=${DEPLOY_DIR}/${SERVER_NAME}
        PID=$SERVER_NAME\.pid
        case $DO in
            start)
                if [ ! -d "$SERVER_DIR" ];then
                  mkdir -p $SERVER_DIR
                        fi
                ##nohup &  以守护进程启动
                cd $SERVER_DIR
                nohup java -Xms256m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 &
                echo $! > $SERVER_DIR/$PID
                echo "=== start $SERVER_NAME"
                ;;
         
            stop)
                kill -9 `cat $SERVER_DIR/$PID`
                rm -rf $SERVER_DIR/$PID
                echo "=== stop $SERVICE_NAME"
                ## 停止5秒
                sleep 5
                ##
                P_ID=`ps -ef | grep -w "$SERVER_NAME" | grep -v "grep" | grep -v "java_deploy" | awk '{print $2}'`
                echo "$SERVER_NAME  11111111 $P_ID"
                if [ "$P_ID" == "" ]; then
                    echo "=== $SERVER_NAME process not exists or stop success"
                else
                    echo "=== $SERVER_NAME process pid is:$P_ID"
                    echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"
                    #kill -9 $P_ID
                fi
                ;;
            restart)
                deploy_java $SERVICE_NAME  $JAR_NAME stop
                sleep 2
                deploy_java $SERVICE_NAME  $JAR_NAME start
                echo "=== restart $SERVICE_NAME"
                ;;
         
            *)
                ## restart
                deploy_java $SERVER_NAME  $JAR_NAME stop
                sleep 2
                deploy_java $SERVER_NAME  $JAR_NAME start
                ;;
        esac
        echo "deploy $server_name finish "
}


if [[ $ACTION == "start" ]] || [[ $ACTION == "stop" ]] || [[ $ACTION == "restart" ]] ;then
    case $SERVER in
                "server-1" )
                deploy_java server-1 server-1-1.0.0.jar $ACTION
                        ;;
                "server-2" )
                deploy_java server-2 server-2-1.0.0.jar $ACTION
                        ;;
                "server-3" )
                deploy_java server-3 server-3-1.0.0.jar $ACTION
                        ;;
                * )
                echo "invalid choice $service_name "
                        ;;
        esac
else
        echo "invalid choice $ACTION"
fi

exit 0

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值