码迷,mamicode.com
首页 > 编程语言 > 详细

Shell脚本 自动部署 SpringBoot 应用

时间:2018-03-16 22:42:04      阅读:841      评论:0      收藏:0      [点我收藏+]

标签:完全   gpo   else   clean   $nf   echo   targe   开发   roo   

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

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

# 远程主机上的路径
RemoteHost=root@domainName.com
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 应用

标签:完全   gpo   else   clean   $nf   echo   targe   开发   roo   

原文地址:https://www.cnblogs.com/zhengwenqiang/p/8586101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!