Linux项目部署

一般境况下我们会把开发的项目部署到Linux系统中去,可以找bug,维护成本低等一些好处。部署项目分为手动和通过shell脚本自动部署

手动部署

1、在idea中把SpringBoot项目打包成jar包

在maven中点击package把项目打包。

下图是打包成功后的页面

打包完的项目在target目录下,然后在本地的文件里面找到jar包如下图所示

2、把jar包上传到Linux服务器

在Linux服务器中输入 :mkdir /usr/local/app 创建目录将jar包放在此目录下。(放在那里由本人自己决定,可以不一样)。使用rz jar包名称 rz这个命令是文件上传的命令需要下载软件lrzsz才能够使用。安装lrzsz的步骤如下:

搜索lrzsz安装包 命令为:yum list lrzsz

使用yum命令在线安装,命令:yum install lrzsz.x86_64 安装完成就可以使用rz 进行文件上传了。上传完毕使用命令:ll查看是否上传成功

3、启动项目

使用命令 :java -jar 项目名.jar(前提是Linux安装的有jdk)

为了方便我们操作我们可以设置一下在Windows系统中也能访问项目,我们要查看防火墙看8080端口是否对外开放。输入命令:firewall-cmd  --zone=public  --list --ports

如果没有对外开放端口号输入命令:firewall-cmd --zone=public  --add-port=8080/tcp --permanent

然后输入命令:firewall-cmd --reload让上面那条命令即时生效。可以输入firewall-cmd  --zone=public  --list --ports再对开放的端口号进行查看。接下来就可以在Windows上访问项目了在浏览器上输入项目的地址,然后Linux端就响应了如下图,但是这样有一个弊端项目启动后这个页面就不能继续输命令了。我们可以设置一下把项目的输出日志在后台显示,这样我就可以继续在这个页面输入其他的命令了。

目前程序存在的问题:当我们把控制台关闭后程序就不能运行了,因此我们需要把程序设置到后台运行这样就解决了霸屏问题,同时还是生成日志文件方便我们查找信息。解决这个问题我们要用到nohup命令。nohup 命令:英文全称 no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行语法格式:nohup Command [Arg ...][&]
参数说明:
command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
举例:
nohup java -jar boot工程.jar &> hello.log &
后台运行iava -jar命令,并将日志输出到hello.log文件

这样程序就被存到后台运行不再霸屏,同时还可以继续输入其他命令。输入:more hello.log查看日志信息

4、停止项目

输入:ps -ef | grep java找到项目的进程id接着输入kill -9 进程id这样就终止程序了。

shell脚本自动部署项目

1、在Linux中安装Git

yum list git   列出git安装包      yum install  git    在线下载git

使用git clone 把远程仓库clone到本地

然后切换到仓库所在的目录,输入ll查看查看里面的代码 cd /git(git是我的远程仓库的名字)


2、在Linux中安装maven

要在自己电脑上下载maven的安装包是Linux系统的,可以在官网上下载。使用rz 命令进行文件上传

输入命令:tar -zxvf  安装包的名字。进行解压

解压后进行环境变量的配置

vim /etc/profile  修改配置文件,输入完命令 输入一个i进入插入模式

加入如下内容:

export MAVEN HOME=/usr/local/apache-maven-3.5.4(根据自己的maven版本)

export PATH=$JAVA HOME/bin:$MAVEN HOME/bin:$PATH

然后按esc健输入:wq回车


接着输入source /etc/profile加载资源
mvn -version查看maven版本号

输入mkdir repo 创建一个名为repo的目录作为maven本地仓库
输入vim /usr/local/apache-maven-3.5.4/conf/settings.xml 修改settings.xml内容

把<localRepository>/usr/local/repo</localRepository>添加在画圈的下面(先输入i才能输入内容,修改后按esc健:wq回车


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

Shell脚本(shellscript),是一种Linux系统中的脚本程序。使用Shel脚本编程跟JavaScript、java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器。这里用的shell脚本如下bootStart.sh 。创建一个sh的目录 madir sh 进入sh目录输入vim bootStart.sh创建bootStart.sh文件

#!/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/git(这里是自己从远程仓库clone的仓库名)

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的文件调用权限分为三级:文件所有者(0wner)、用户组(Group)、其它用户(0ther Users)只有文件的所有者和超级用户可以修改文件或目录的权限要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行

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

八进制数权限rwx
7读+写+执行rwx
6读+写rw-
5读+执行r-x
4只读r--
3写+执行-wx
2只写-w-
1只执行- -x
0- - -

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

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

chmod 210 bootstart.sh 为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限
注意:三位数字分别代表不同用户的权限
·第1位表示文件拥有者的权限
·第2位表示同组用户的权限
·第3位表示其他用户的权限


5、执行Shell脚本

./bootStart.sh启动项目第一次启动可能会很慢因为要下载相应的jar包

这样我们的项目就自动部署完了。

关于shell脚本我们不用担心,但我们在企业开发的时候会有运维人员来编写,自己也可以学。

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux项目部署流程一般包括以下步骤: 1. 确定部署环境:确定要部署的Linux系统版本、硬件配置、网络环境等。 2. 安装必要的软件:根据项目需求,安装必要的软件和依赖库。 3. 配置环境变量:设置环境变量,确保项目能够正常运行。 4. 部署代码:将项目代码部署到服务器上,并进行必要的配置。 5. 启动服务:启动项目服务,确保项目能够正常运行。 6. 测试项目:进行项目测试,确保项目能够正常运行和满足需求。 7. 监控和维护:对项目进行监控和维护,确保项目的稳定性和安全性。 以上是Linux项目部署流程的基本步骤,具体流程还需要根据项目的实际情况进行调整和完善。 ### 回答2: 通过使用Linux系统来部署项目可以保证项目的可靠性,安全性和高效性。以下是Linux项目部署流程: 1. 确定项目需求和服务器配置:首先要确定项目的需求,包括数据存储方式、数据传输方式,以及项目所需的硬件和软件环境。然后根据项目需求和服务器配置,选择合适的服务器,或者进行服务器升级。 2. 安装操作系统和必要的软件:在确定好服务器配置后,在服务器上安装Linux操作系统,然后根据项目需求安装必要的软件,例如web服务、数据库、日志分析等。 3. 配置服务器环境:在安装完必要的软件之后,根据项目需要进行一系列配置,例如服务器安全、SSL/HTTPS证书、网络设置等。 4. 部署项目代码:在服务器环境配置好之后,将项目代码部署到服务器上。通常是通过FTP或者SCP上传代码到服务器上。 5. 配置项目环境:项目部署服务器上后,需要对其环境进行配置,例如数据存储方式、数据传输方式等。针对不同的项目,需要进行不同的环境配置。 6. 测试部署:部署完项目后,需要进行测试。测试的目的是确保项目在服务器上运行正常,各项功能均能正常使用,不会出现系统崩溃等问题。 7. 监控:部署完毕后,需要对项目进行监控,在生产运营中发现问题及时解决,以确保线上服务的稳定性和可用性。 总之,Linux系统是一个开放、灵活和安全的操作系统,部署项目到Linux平台上可以提高项目的安全性和可靠性,同时也可以降低项目的运行成本。以上就是我对Linux项目部署流程的详细介绍。 ### 回答3: Linux项目部署流程主要包括以下步骤: 1. 服务器准备:购买或租用服务器,配置服务器环境,安装操作系统。 2. 应用程序准备:开发或采购应用程序,并进行测试和优化,确保程序可以在Linux系统上运行。 3. 数据库准备:根据项目需求选择适合的数据库,并进行安装和配置。 4. 代码部署:将应用程序代码上传至服务器,并配置运行环境,如设置环境变量、安装依赖库等。 5. 数据库部署:搭建数据库环境,导入数据并进行配置。 6. 测试运行:进行单元测试、系统测试和集成测试等,确保应用程序在Linux环境下可以正常运行。 7. 优化性能:根据测试结果进行性能优化,并进行反复测试和优化。 8. 发布上线:经过测试和优化后,应用程序可以正式上线运行。 9. 监控维护:对Linux系统和应用程序进行监控和维护,确保系统稳定运行。 在以上步骤中,每一步都需要认真准备和严谨执行,以确保Linux项目能够顺利部署并稳定运行。同时,需要不断提升自己的技能和经验,不断学习新技术和解决方案,才能更好地应对不断变化的项目需求和挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值