Linux项目部署


一、人工部署

  1. 在IDEA中开发SpringBoot项目并打成jar包

  2. 将jar包上传到Linux服务器
    可以使用rz命令上传文件(要有安装lrzsz)

  3. 启动SpringBoot程序

    java -jar jar包名
    

    在这里插入图片描述

  4. 检查防火墙,确保所需要访问的端口对外开放,访问SpringBoot项目

    防火墙开启指定端口
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    
    重新加载防火墙
    firewall-cmd --reload
    
    查看已开启的端口
    firewall-cmd --zone=public --list-ports
    

目前程序运行的问题: (1)线上程序采用控制台霸屏的形式运行程序,而且将程序关闭之后项目就结束了 (2)线上程序直接将日志输出到控制台

在这里插入图片描述
5. 改为后台程序SpringBoot程序,并将日志输出到日志文件

nohup命令(no hang up),用于不挂断地运行指定命令,退出终端不会影响程序的运行
	语法格式:nohup Command[Arg...][&]
	参数说明:
	Command:要执行的命令
	Arg:一些参数,可以指定输出文件
	&:让命令在后台运行
	举例:
	nohup java -jar boot工程.jar &>hello.log &      后台运行java -jar命令,并将日志输出到hello.log文件

在这里插入图片描述

  1. 停止SpringBoot程序
    在这里插入图片描述

    ps -ef查看所有进程
    ps -ef | grep 'java -jar' 把前一个命令的输出作为后一个命令的输入
    

二、通过Shell脚本自动部署项目

操作步骤:

  1. 在Linux中安装Git

    1.安装Git
    yum list git          // 列出git安装包
    yum install git       // 在线安装git
    2.使用Git克隆代码
    cd/usr/local/
    git clone git仓库地址
    
  2. 在Linux中安装maven

    将maven安装包上传到Linux,解压
    tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/locar       // 解压到usr/local下
    
    vim /etc/profile                                 //修改配置文件,加入以下内容
    export MAVEN_HOME=/usr/local/apache-maven-3.5.4
    export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
    
    source /etc/profile     //重新加载文件,让上面加入的内容生效
    mvn -version            //看是否下载成功
    
    vim /usr/local/apache-maven-3.5.4/conf/settings.xml   //修改配置文件内容如下
    <localReposity>/usr/local/repo</localReposity>     //需要先创建repo目录
    
  3. 编写Shell脚本(拉取代码、编译、打包、启动)

    Shell脚本,是一种Linux系统中的脚本程序
    使用Shell脚本编程跟JavaScript、Java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释权就可以了
    
    在/usr/local/下创建目录mkdir sh ,在sh目录的路径下将脚本文件写入vim bootStart.sh 
    下面是Shell的脚本文件
    注意:脚本文件中nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &  
             helloworld-1.0-SNAPSHOT.jar这个jar包名要和自己的jar包名字一样
    
    #!/bin/sh
    echo =================================
    echo  自动化部署脚本启动
    echo =================================
    
    echo 停止原来运行中的工程
    APP_NAME=helloworld
    
    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
    if [ ${tpid} ]; then
        echo 'Stop Process...'
        kill -15 $tpid
    fi
    sleep 2
    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
    if [ ${tpid} ]; then
        echo 'Kill Process!'
        kill -9 $tpid
    else
        echo 'Stop Success!'
    fi
    
    echo 准备从Git仓库拉取最新代码
    cd /usr/local/helloworld
    
    echo 开始从Git仓库拉取最新代码
    git pull
    echo 代码拉取完成
    
    echo 开始打包
    output=`mvn clean package -Dmaven.test.skip=true`
    
    cd target
    
    echo 启动项目
    nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
    echo 项目启动完成
    
    
  4. 为用户授予执行Shell脚本的授权

    chmod(英语全拼:change mode)命令是控制用户对文件的权限的命令
    Linux中的权限分为:读(r)、写(w)、执行(x)三种权限
    Linux的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
    只有文件的所有者和超级用户可以修改文件或目录的权限
    要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行
    

    在这里插入图片描述

在这里插入图片描述

  1. 执行Shell脚本
    在这里插入图片描述
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值