Shell脚本 自动部署 SpringBoot 应用

Posted ChaseForFuture

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本 自动部署 SpringBoot 应用相关的知识,希望对你有一定的参考价值。

公司项目使用了SpringBoot。开发的应用需要自动上传到服务器。虽然目前对热部署还没完全掌握。先使用shell简化一下部署吧。

# 上传密钥
sshLoginKey=/f/MyFile/root.key
# 项目在本机的目录
MyProject=/d/MyProject/comment

# 远程主机上的路径
RemoteHost=[email protected]
RemotePath=$RemoteHost:/data/

if [ -f "$sshLoginKey" -a -d "$MyProject" ];then
    cd $MyProject
    # 只输出错误
    mvn clean package -q
    # 查找target目录中,最近1分钟内打包的文件,与文件名解耦,更加通用
    fileName=$(find target -size +15M -type f -cmin -1)

    if [ -e "$fileName" ];then
        echo "打包成功"
        scp -P 2233 -i $sshLoginKey $fileName $RemotePath;
        if [ $? -eq 0 ];then
            echo "上传成功。";
            # 停止服务
            ssh -p 2233 $RemoteHost -i $sshLoginKey "ps -ef | awk ‘\$NF~/comment/{print \$2}‘ | xargs kill -9 "
            
            # 启动服务
            # ssh -p 2233 $RemoteHost -i $sshLoginKey "/root/jdk1.8.0_152/bin/java -jar /data/comment.jar 2>&1 >/var/log/comments.log &"
        else
            echo "上传失败。";
        fi
    else
        echo "打包失败"
        exit 1
    fi

    if [ -f "$fileName" ];then
        rm -rf $fileName
    fi
else
    echo "密钥或项目不存在";
    sleep 5s;
fi

 

以上是关于Shell脚本 自动部署 SpringBoot 应用的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins+Docker 一键自动化部署 SpringBoot 项目

Python工程师Java之路(t)使用Shell脚本部署SpringBoot

shell脚本和自动化部署

Jenkins自动部署Shell脚本

如何利用jenkins git shell脚本自动部署服务

Linux通过Shell自动部署springboot