Linux项目部署
手工部署项目
第一步,将所要部署的项目打成jar包
第二步,将jar包上传到linux服务器创建目录:mkdir /usr/local/app
,输入rz上传jar包
第三步,启动springboot程序:在目录下输入java -jar
+ 对应jar包的名称
第四步:改为后台运行springboot程序,并将日志输出到日志文件
目前程序运行的问题:
- 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
- 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
nohup命令:英文全称no hang up(不挂起),用于不挂断的运行指定命令,退出终端不会影响程序运行
语法格式: nohup Command[ARG ...][&]
参数说明:
command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
举例:nohup java -jar boot工程.jar &> hello.log &
后台运行java-jar命令,并将日志输出到hello.log文件
第五步,停止spring boot程序
pa -ef | grep java
找到对应服务的id
kill -9 上边的id
杀死服务
通过shell脚本自动部署项目
操作步骤:
1、在Linux中安装gityum list git
列出git安装包 yum install git
在线安装git
使用git克隆代码 cd /usr/local/
进入路径 gti clone url
克隆
2、在Linux中安装maven
将maven安装包上传到Linux,在Linux中安装maven
执行 tar -zxvf 文件 -C /usr/local
进行解压
执行vim /etc/profile
修改配置文件,加入以下内容
export MAVEN_HOME=/usr/local/apache-maven-3.5.4 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
执行mkdir repo
创建自己的本地仓库
执行source /etc/profile
输入mvn -version 验证
执行vim /usr/local/apache-mavben-3.5.4/conf/settings.xml
修改配置文件如下
<localRepository>/usrl/local/repo</localRepository>
3、编写Shell脚本(拉去代码、编译、打包、启动)
Shell脚本(Shell script):是一种Linux系统中的脚本程序
使用Shell脚本能变成跟Javascript、Java变成一样,只要一个能编写代码的文本编辑器和一个能解释和执行的脚本解释器就可以了
#!/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/hello 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 项目启动完成
项目启动不起来提示没有权限再来添加以下两行到脚本中,添加到启动项目之前
chmod 777 jar包名称 chmod 777 日志文件名称
4、为用户授权执行Shell脚本的权限
chmod(英文全拼:change mode )命令是控制用户对文件的权限命令
Linux中的权限非为:读(r),写(w),执行(x)三种权限
Linux的文件调用权限分为三级:文件所有这(Owner),用户组(Group),其他用户(other Users)
只有文件的所有者和超级用户可以修改文件或目录的权限
只执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行
第一位表示是文件还是目录,-表示文件,d表示目录
chmod命令可以使用八进制数来指定权限:
举例:
chmod 777 bootStart.sh 为所有用户授予读写执行权限
chmod 755 bootStart.sh 为文件拥有者授予独写执行权限,同组用户和其他用户授予读、执行权限
chmod 210 bootStart.sh 为文件拥有者授予写权限,同组用户授予 执行权限,其他用户没有权限
注意:三位数字分别待变不同用户的权限:第一位表示文件拥有者权限,第二位表示同组用户的权限,第三位表示其他用户的权限
5、执行Shell脚本
执行脚本可能因为没有配置maven 阿里云镜像导致打包过慢
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
在mirrors标签里面添加
<id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>aliyunmaven</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)