linux学习(5)—— 项目部署

将项目部署到linux系统上

一. 手工部署项目

1. 在IDEA中将Springboot项目打包为jar包

2. 将jar包上传到Linux服务器

①在/usr/local下新建一个app目录,将项目的jar包放到该目录下

②然后在app目录下运行该项目java -jar linux-0.0.1-SNAPSHOT.jar

之后可以在外部浏览器通过访问http://ip:8080/来访问该项目(要确保项目的端口号在linux上是打开的,即如果项目端口号是8080,则linux系统的8080端口需要是打开的)

注意:该方式会导致linux控制台被霸占,不能再执行其他操作 

③改为后台运行项目,并将日志输出到日志文件 

线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行;线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息 

nohup命令:用于不挂断地运行指定命令,退出终端不会影响程序的运行

语法格式:nohup Command [Arg…] [&]

参数说明:①Command:要执行的命令;②Arg:一些参数,可以指定输出文件;③&:让命令在后台运行

举例:nohup java -jar springboot工程.jar &> hello.log & (后台运行java -jar命令,并将日志输出到hello.log文件)

停止项目

先查看该项目的进程id:ps -ef|grep java

通过停止进程来停止项目的运行: kill -9 id(例如:kill -9 22068)

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

1. 在本地将Springboot项目放到远程Git仓库内

2.  在linux系统中将远程Git仓库内的项目文件克隆到linux中

        将项目克隆到/usr/local目录下,首先进入/usr/local,然后输入命令:git clone git仓库的地址

3. 编写Shell脚本(拉取代码、编译、打包、启动)

①在/usr/local下创建一个sh目录,用于存放shell脚本

②在sh目录下创建一个bootStart.sh文件,使用vim命令在文件内添加以下内容:  

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程,项目名为linux
APP_NAME=linux

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仓库拉取最新代码,linux为项目名
cd /usr/local/linux

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output='mvn clean package -Dmaven.test.skip=true'

cd target

echo 启动项目
nohup java -jar linux-0.0.1-SNAPSHOT.jar &> linux.log &
echo 项目启动完成

之后添加新的项目,只需要替换上面的项目名就行 

4. 为用户授予执行Shell脚本的权限

我们使用chmod 777 bootStart.sh来为shell脚本赋予权限 

Linux中的权限分为:读(r)、写(w)、执行(x)三种权限 

Linux的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

只有文件的所有者和超级用户可以修改文件或目录的权限

要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行

chmod命令可以使用八进制数来指定权限:

例如:chmod 777 bootStart.sh:为所有用户授予读,写、执行权限

chmod 755 bootstart.sh:为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限

chmod 210 bootstart.sh:为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限

注意:三位数字分别代表不同用户的权限,第1位表示文件拥有者的权限,第2位表示同组用户的权限,第3位表示其他用户的权限

5. 执行Shell脚本

切换到/usr/local/sh目录下,执行以下命令 

sh bootStart.sh

6. 设置linux系统的静态ip

将IP给固定为192.168.153.100

使用vim命令修改文件/etc/sysconfig/network-scripts/ifcfg-ens33,将其中的内容修改如下: 

① 修改为static,使用静态IP地址,默认为dhcp

BOOTPROTO="static"          

②在上面语句下加入下面的语句:

IPADDR="192.168.32.100"     #设置的静态IP地址(与下图对应,是多少就是多少,这里是32)

NETMASK="255.255.255.0"     #子网掩码 

GATEWAY="192.168.32.2"      #网关地址 

DNS1="192.168.32.2"             #DNS服务器 

重启网络服务:systemctl restart network

发现已经连接不上,需要创建新的连接,即在FinalShell再创建新的连接Linux

 之后如果添加新的项目,只需要执行1、2、3、4、5步就可以

如果启动的是已有的项目,只需要执行第5步

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值