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

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

时间: 2024-09-29 17:39:55

Shell脚本 自动部署 SpringBoot 应用的相关文章

Shell脚本自动部署(编译)LAMP平台

Shell脚本自动部署(编译)LAMP平台 LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们自己定制安装AMP,编译安装LAMP有以下几个优点 根据生产环境灵活定制程序 优化编译参数,提高性能 解决不必要的软件依赖 友情提示:对编译安装有疑问的朋友, 查看我以前写的博客:教你使用rpm.yum.编译等方式安装软件 点击此处获得更好的阅读体验 为什么要用脚本进行部署? 在很多情况下部署LAMP平台并不止一

使用shell脚本自动部署(发布,重起)maven(java)项目

项目结构如下图 一:系统环境 本机:10.4.18.3 服务器: 10.4.18.4,用户名: web02 二:初始化服务器环境 在服务器上的家目录创建目录deploy,deploy/profile mkdir -p /home/web01/deploy mkdir -p /home/web02/deploy/profile 安装jdk export JAVA_HOME=/home/web02/jdk1.7.0_67 三:源代码(这里演示了一个自己写的http web服务器) com.lala.

CentOS7通过shell脚本自动部署oracle12c

由于经常需要部署oracle12c环境,我就将部署过程编写成shell脚本来,提高安装部署的效率,自动安装部署的脚本分为两部分,第一部分oracle_software.sh的作用是安装oracle软件环境:第二部分是listener_dbca.sh,作用是安装监听.配置oracle系统启停服务.配置数据库实例,临时表空间,数据表空间及授权.完成这两个脚本之后,最后的操作就是将待导入的dmp备份文件上传到服务器,操作expdp还原即可.脚本的内容具体如下:oracle数据库自动安装部署脚本: [[

shell脚本自动部署nignx反向代理及web服务器,共享存储

#!/bin/bash systemctl status nginx var=$? if [ $var -eq 4 ] then yum install epel-release -y if [$? -ne 0 ] then echo "epel库安装失败,无可用nginx源" else yum install nginx -y if [ $? -eq 0 ] then systemctl start nginx if [ $? -eq 0 ] then echo "ngin

脚本自动部署构架集群和监控状态

脚本自动部署构架集群和监控状态 shell脚本编写自动部署.初始配置.并启动nginx反向代理服务 1 #!/bin/bash 2 systemctl disable firewalld 3 systemctl stop firewalld 4 setenforce 0 5 #### 6 yum install epel-release -y 7 yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel 8 yum

linux开发脚本自动部署及监控

开发脚本自动部署及监控 1.编写脚本自动部署反向代理.web.nfs: 要求: I.部署nginx反向代理三个web服务,调度算法使用加权轮询: #!/bin/sh ngxStatus=`ps aux | grep -v grep |grep -c nginx` function ngxProxyInstall() { if [ -e /usr/sbin/nginx ];then echo "nginx already installed" exit 110 else yum inst

shell脚本批量部署ssh

日常运维工作中,需要给几十上百台服务器批量部署软件或者是重启服务器等操作, 这样大量重复性的工作一定很苦恼,本文给大家提供了最基本的批量操作的方法,虽然效率不高,对于初学者来说还是好理解.由于刚开始学习写脚本,什么 puppt这样的高级工具还不会使用,就简单的利用shell脚本.ssh-keygen.expect来实现.希望能给各位带来帮助,不足之处还请留言 指出,大家共同进步. 首先,需要检查expect是否安装:rpm -qa|grep expect 然后,在操作机上创建公钥:ssh-key

Shell脚本一键部署MongoDB

Shell脚本一键部署MongoDB 基本实施思路: 安装MongoDB→创建多实例(创建数量可根据需求自定义)→开启所有实例并展示端口 #!/bin/bash #自动安装MongoDB # #检查MongoDB是否已安装 local="/etc/yum.repos.d/MongoDB.repo" rpm -q mongodb-org &> /dev/null if [ $? -ne 0 ];then #配置本地YUM源 ls /etc/yum.repos.d/ | gr

Day11.开发脚本自动部署及监控

1.编写脚本自动部署反向代理.web.nfs:要求:I.部署nginx反向代理三个web服务,调度算法使用加权轮询: II.所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性: 2.编写监控脚本,监控nginx,nfs存活状态,内存使用率检测,异常则发送报警邮件 准备发送邮件的工具: 监控脚本的编写: 继续编写刚才的脚本编写,加入邮件功能 3.编写计划任务,定时运行监控脚本,完成监控操作