Linux操作系统3-项目部署
手动部署
步骤
1.在idea中将文件项目进行打包
2.自定义一个文件目录,上传到Linux
3.使用 java -jar +jar包名就可以进行运行
注意,如果需要启动该项目,需要确定所需的端口是否打开
采用这种方式,程序运行的时候会出现霸屏,并且会将日志信息输出到控制台,这样会影响使用,并且SSh窗口退出后,外部就不能访问了
解决方式:
nohup命令,指不挂断语法,格式 nohub Command[Arg][&]
Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
例如: nohub java -jar boot工程名.jar &> hello.log & //后台启动Java-jar命令,将日志输出到当前文件夹的hello.log文件
想要关闭boot进程,只需找到进程号,ps -ef | grep java,然后通过 kill -9 进程号,就能关闭boot进程
通过shell脚本部署
操作步骤
1.在Linux安装git
yum list git //查询git版本
yum install git //安装
#使用Git克隆代码
cd /usr/local/
git clone 仓库地址
2.在Linux安装maven
上传解压
配置环境变量
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/localvim /etc/profileexport MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATHsource /etc/profile //重新加载资源
mvn -version //查看安装情况vim /usr/local/apache-maven-3.5.4/conf/settings.xml
<localRepository>/usr/local/repo</localRepository>//设置maven的本地仓库
3.编写Shell脚本(拉取代码、编译、打包、启动)
在/usr/local目录下创建一个文件夹
创建一个文件,vim bootstart.sh
将以下的内容复制粘贴进去,保存退出
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================echo 停止原来运行中的工程
APP_NAME=helloworldtpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho '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} ]; thenecho 'Kill Process!'kill -9 $tpid
elseecho 'Stop Success!'
fiecho 准备从Git仓库拉取最新代码
cd /usr/local/helloworldecho 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`cd targetecho 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成
4.为用户授予执行Shell脚本的权限
Linux的权限:r读权限,w写权限,x执行权限
文件调用权限分为:文件所有者(Owner),用户组(Group),其他用户(Other Users)
只有文件的所有者和超级用户可以修改文件或目录权限

chmod命令进行shell脚本授权

5.执行shell脚本
sh 文件名.sh
设置静态ip
修改文件,/etc/sysconfig/network-scripts/ifcfg-ens33,安装的是Centos7,使用的Finallshell,名称就是ens33

修改完成后需要重启网络服务
systemctl restart network,使用新网络的时候,就网络连接的Finalshell会断开,使用新的ip进行连接即可
相关文章:
Linux操作系统3-项目部署
手动部署 步骤 1.在idea中将文件项目进行打包 2.自定义一个文件目录,上传到Linux 3.使用 java -jar jar包名就可以进行运行 注意,如果需要启动该项目,需要确定所需的端口是否打开 采用这种方式,程序运行的时候会出现霸屏,并且会…...
软件测试面试题——接口自动化测试怎么做?
面试过程中,也问了该问题,以下是自己的回答: 接口自动化测试,之前做过,第一个版本是用jmeter 做的,1 主要是将P0级别的功能接口梳理出来,根据业务流抓包获取相关接口,并在jmeter中跑…...
如何在医疗器械行业运用IPD?
医疗器械是指单独或者组合使用于人体的仪器、设备、器具、材料或其他物品,包括所需要的软件。按安全性可分为低风险器械、中风险器械和高风险器械。其中低风险器械大都属于低值耗材,其中包括绷带、纱布、海绵、消毒液等;中度风险器械类包括体…...
16. Spring Boot 统一功能处理
目录 1. 用户登录权限校验 1.1 最初用户登录验证 1.2 Spring AOP 用户统一登陆验证 1.3 Spring 拦截器 1.3.1 创建自定义拦截器 1.3.2 将自定义拦截器加入系统配置 1.4 练习:登录拦截器 1.5 拦截器实现原理 1.6 统一访问前缀添加 2. 统一异常处理 3. 统…...
PostgreSQL-数据库命令
PostgreSQL-数据库命令 介绍 一个数据库是一个或多个模式的集合,而模式包含表、函数等。因此,完整的逻辑组织结构层次是服务器实例(PostgreSQL Server)、数据库(Database)、模式(Schema)、表(Table),以及某些其他对象(如函数)。一个PostgreSQL服务器实例可以管理…...
面试题:说说JavaScript中内存泄漏的几种情况?垃圾回收机制
内存泄漏 一、是什么?二、垃圾回收机制?2.1、标记清除法2.2、引用计数法 三、常见内存泄露情况 一、是什么? 由于疏忽或错误造成程序未能释放已经不再使用的内存;并非指内存在物理上的消失,而是应用程序分配某段内存后…...
HTML基础介绍1
HTML是什么 1.HTML(HyperText Mark-up Language)即超文本标签语言(可以展示的内容类型很多) 2.HTML文本是由HTML标签组成的文本,可以包括文字、图形、动画、声音、表格、连接等 3.HTML的结构包括头部(He…...
【腾讯云 Cloud Studio 实战训练营】Redisgo_task 分布式锁实现
文章目录 前言问题场景腾讯云 Cloud Studio Redisgo_task长短类型分布式场景介绍Redisgo_task实现原理SetNx(valueexpire)原子性子协程Done()时间点子协程中的Ticker Redisgo_task唯一外部依赖Redisgo_task Lock结构Redisgo_task架构健壮性设计Redisgo_task可扩展性Redisgo_tas…...
Linux CentOS系统怎么下载软件
Linux CenOS系统想要下载软件可以在Linux内置的应用商店,并通过Yum 包管理器来下载(直接使用yum命令下载软件) 在Linux系统中,Yum(Yellowdog Updater, Modified)是用于管理RPM软件包的一个包管理器。 安装…...
SNAT和DNAT原理与应用
iptables的备份和还原 1.写在命令行当中的都是临时配置。 2.把我们的规则配置在 备份(导出):iptables-save > /opt/iptables.bak 默认配置文件:/etc/sysconfig/iptables 永久配置:cat /opt/iptables.bak > /etc…...
Java8实战-总结11
Java8实战-总结11 Lambda表达式方法引用管中窥豹如何构建方法引用 构造函数引用 Lambda表达式 方法引用 方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它们。在一些情况下,比起使用Lambda表达式,它们似乎更易读,感…...
2023爱分析·低代码厂商全景报告|爱分析报告
关键发现 低代码开始向甲方核心场景渗透,呈现两个显著特征:“更深入”、“更垂直”。更深入,即甲方愈发注重低代码在复杂业务场景的应用开发能力;更垂直,即甲方需要使用低代码开发行业垂直应用,因此对行业或…...
视频两侧有黑边怎么处理?教你裁切视频黑边方法
现在的大多数电视是16:9的宽屏,而大多数视频都是4:3的标清或是16:9的高清。当你看一个标清或高清视频时,如果它的比例与你的电视屏幕比例不同,视频两侧就会出现黑边。这些黑边会对视频的质量或观看体验产生影响,那么怎么处理呢&am…...
如何设计一个Android端高性能日志监控系统
开发中客户端经常遇到一些线上问题, 无法复现, 但是又的的确确存在; 当线上反馈的时候无从下手; 主要是因为并不知道用户所处的环境,以及所做的操作顺序或者程序运行的顺序; 在排查问题和复现问题上占用了很大的成本; 如果debug时的log日志如果线上也能查看就好了; 基于此, 我们…...
maven下载按照及初次使用相关配置
maven下载按照及初次使用相关配置 一、下载 与安装 依赖Java,需要配置JAVA_HOME设置MAVEN自身的运行环境,需要配置MAVEN_HOME测试环境配置结果 MVN测试成功!!! 二、本地仓库配置 Maven启动后,会自动保…...
opencv05-掩膜
参考: https://blog.csdn.net/shuiyixin/article/details/88825549 #include <iostream> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <vector> #include <array> #include <algorithm>u…...
通讯软件013——分分钟学会Kepware OPC AE Server仿真配置
本文介绍如何使用Kepware软件仿真OPC AE Server配置。相关软件可登录网信智汇(wangxinzhihui)下载。 1、创建1个数据源:本案例采用“Graybox.Simulator.1”作为数据源。连接OPC Server数据源“Graybox.Simulator.1”。 右键点击“连通性”&am…...
Windows下安装Hive(包安装成功)
Windows下安装Hive Hive与Hadoop的版本选择很关键,千万不能选错,否则各种报错。一、Hive下载1.1、官网下载Hive1.2、网盘下载Hive 二、解压安装包,配置Hive环境变量2.1、环境变量新增:HIVE_HOME2.2、修改Path环境变量,…...
count(列名) ,count(1)与count(*) 有何区别?
Mysql版本:8.0.26 可视化客户端:sql yog 文章目录 一、Mysql之count函数简介二、count(列名) ,count(常量)与count(*) 有何区别?2.1 统计字段上的区别2.2 执行效率上的区别 一、Mysql之count函数简介 👉表达式 COUNT(…...
node.js判断元素是否包括
在Node.js中,可以使用Array.prototype.some()方法来判断数组中是否包含某个元素。下面是一个示例代码: const arr [ { ‘_android:name’: ‘com.eg.android.AlipayGphone’ }, { ‘_android:name’: ‘com.eg.android.AlipayGphoneRC’ }, { ‘_andro…...
LTspice2Matlab:电路仿真数据导入MATLAB的高效解决方案
LTspice2Matlab:电路仿真数据导入MATLAB的高效解决方案 【免费下载链接】ltspice2matlab LTspice2Matlab - Import LTspice data into MATLAB 项目地址: https://gitcode.com/gh_mirrors/lt/ltspice2matlab 在电路设计与仿真工作中,如何将LTspice…...
Notepad++ 式轻量开发体验:在PyTorch 2.8容器内配置高效命令行环境
Notepad 式轻量开发体验:在PyTorch 2.8容器内配置高效命令行环境 1. 为什么选择轻量级开发环境? 对于习惯了Notepad这类轻量编辑器的开发者来说,重型IDE往往显得臃肿且启动缓慢。特别是在云端深度学习开发场景中,PyTorch容器环境…...
终极JavaScript状态管理指南:Redux与状态机的实用最佳实践
终极JavaScript状态管理指南:Redux与状态机的实用最佳实践 【免费下载链接】clean-code-javascript Clean Code concepts adapted for JavaScript 项目地址: https://gitcode.com/GitHub_Trending/cl/clean-code-javascript clean-code-javascript是一个专注…...
字幕提取与格式转换解决B站内容离线使用难题:BiliBiliCCSubtitle的多场景应用指南
字幕提取与格式转换解决B站内容离线使用难题:BiliBiliCCSubtitle的多场景应用指南 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 当你在B站发现一门优…...
为Cosmos-Reason1-7B开发自定义前端界面:Streamlit快速搭建
为Cosmos-Reason1-7B开发自定义前端界面:Streamlit快速搭建 你是不是已经部署好了Cosmos-Reason1-7B模型,但每次调用都得在命令行里敲代码,或者用那些不太顺手的脚本?想不想给你的模型加一个漂亮、好用,还能分享给别人…...
提升Adobe Illustrator开发效率的自动化脚本工具集
提升Adobe Illustrator开发效率的自动化脚本工具集 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在设计开发流程中,重复性操作、多文件管理和格式标准化往往消耗大量时…...
OpenClaw 控制面板侧边栏工具说明书
这份说明书基于 OpenClaw 官方文档整理,帮助你理解控制面板各个功能模块。版本:2026.3.31 📋 侧边栏工具概览 工具对应功能用途代理Agents(多代理)管理多个独立 AI 代理技能Skills安装和管理自定义技能节点Nodes配对的…...
如何快速使用网络性能测试工具:面向初学者的完整指南
如何快速使用网络性能测试工具:面向初学者的完整指南 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds 想要准确测量网络带宽、排查网速问…...
Janus-Pro-7B文生图作品展:中国风角色、科幻机甲、自然生态高清图集
Janus-Pro-7B文生图作品展:中国风角色、科幻机甲、自然生态高清图集 1. 模型能力概览 Janus-Pro-7B是DeepSeek推出的统一多模态模型,它在一个框架内同时实现了图像理解和文本生成图像两大核心功能。这个设计思路很巧妙——传统上,理解图像和…...
GCC/Clang编译警告终极配置:用-Wall -Wextra提升代码质量的3个冷技巧
GCC/Clang编译警告终极配置:用-Wall -Wextra提升代码质量的3个冷技巧 在C/C开发中,编译警告常被视为"可以忽略的噪音",但经验丰富的开发者知道,这些警告往往是代码质量的早期预警系统。当你在深夜调试一个难以复现的内存…...
