首页 > 系统相关 >Linux项目部署

Linux项目部署

时间:2022-12-17 21:46:15浏览次数:51  
标签:执行 grep 项目 部署 jar echo 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脚本需要有对此脚本文件的执行权限,如果没有则不能执行
image
第一位表示是文件还是目录,-表示文件,d表示目录
image
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>

即可

标签:执行,grep,项目,部署,jar,echo,Linux,权限
From: https://www.cnblogs.com/rhy2103/p/16988950.html

相关文章

  • 部署图
        一个系统包括软件和硬件两个方面,经过开发得到的软件系统的构件和模块必须部署到某些硬件上予以执行。部署图(也叫配置图)由节点和节点之间的联系构成,描述了系统硬......
  • RapidOCR-完全开源免费并支持离线部署的多平台多语言OCR SDK
    RapidOCR(捷智OCR-信创级开源OCR-为世界内容安全贡献力量)商业支持提供信创平台多架构,包括Arm/X86/mips(龙芯)/RISC-V等信创CPU支持,同时兼容ONNXRuntim......
  • spring webflux项目集成后台管理系统的用户登录,支持用户session
    配置pom.xml:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ......
  • 空间不足了?用linux搭建samba家庭共享盘
    目录背景--空间不够,文件太散乱环境搭建硬盘开机自动挂载samba安装配置参考背景--空间不够,文件太散乱最近在使用各种设备的时候,总是觉得存储空间告急。总觉得现在不太喜......
  • docker部署opengauss
    下载二进制包到/opt/software/wgethttps://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/x86/openGauss-1.1.0-CentOS-64bit-all.tar.gz下载源码软件到/opt/soft......
  • Linux网络命令
    目录ifconfig命令route路由命令ip命令netstat命令ping命令telnet命令ssh命令ifconfig命令用于配置网卡ip地址等网络参数信息,或者查看网络接口信息,类似于windows的ipconfi......
  • 在springboot项目里配置ReactiveRedisTemplate
    配置pom.xml: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis-reactive</artifactId> </dependency> ......
  • spring webflux项目启动类
     importlombok.extern.slf4j.Slf4j;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;im......
  • sonic-server的前后端部署
    官网:https://sonic-cloud.gitee.io/#/Deploy?tag=back-end 参照官网步骤Sonic的Server端与Client端:0、需提前建数据库库!字符集为utf8,排序规则为utf8_general_ci1、下......
  • 在springboot项目集成r2dbc,集成mysql的流式代码DAO层
    我引用的是springboot2.7.0版本。在pom.xml里引入r2dbc的包,和mysql的驱动包:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot......