【IDEA】自动部署SpringBoot Jar包到远程服务器并通过脚本启动jar

news2024/12/27 12:11:36

【IDEA】自动部署SpringBoot Jar包到远程服务器并通过脚本启动jar

文章目录

  • 前言
  • 一.Deployment使用
  • 二.ssh使用
  • 三.启动脚本

前言

IDEA版本: 2019.3

一.Deployment使用

IDRA原生的Deployment不需要离开idea就可以直接将项目部署到远程运行,同时拥有远程视图窗口…

温馨小提示:其它的一些连接软件还有如下等

1.打开连接远程服务器信息:Tools->Deployment->Configuration

2. 选择为SFTP,并设置配置信息名称

  1. 配置连接远程服务器信息

配置好之后Tools->Deployment->Configuration->Browse Romote Host查看服务器文件目录文件

并且可以右键服务器上的文件进行增删改查

也可以通过项目右击Deployment上传文件到服务器,此时文件会上传到之前 Deployment path 映射的目录下。

也可以直接通过idea查看映射到服务器上的文件和本地路径中的文件是否相同

二.ssh使用

Tools->Start SSH session 配置ssh开启远程终端连接

  1. 配置ssh信息

  2. 可沿用Deployment配置信息

三.启动脚本

将如下脚本拷贝到远程服务器jar包同目录,然后运行sh start.sh命令启动脚本即可启动服务(此处有个坑,如果自己在idea中编写脚本请将换行符设置为linux下的LF格式)。

#!/usr/bin/env bash
#!/bin/sh
RESOURCE_NAME=cnntest-1.0.0.jar #设置启动jar文件名
 
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
 
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'App is running.'
else
    echo 'App is NOT running.'
fi
 
rm -f tpid
nohup java -jar ./$RESOURCE_NAME  & tail -f nohup.out
echo $! > tpid
echo Start Success!

  1. chmod +x start.sh(第一次运行的时候获取一下超级管理员权限)然后以后每次运行直接./start.sh 即可

  2. 拷贝脚本的时候运行的时候如果报错,应该是文件格式转换的问题

bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory

可以 yum -y install dos2unix 然后 dos2unix start.sh重新运行脚本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/173339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高并发系统设计 --计数服务抽离

传统计数 模糊计数 Cache DB。写Cache,批量刷新DB。 有一个写请求,我们就写cache,写一个在cache中1,buffer记一个,差不多(buffer满了,时间到了)写一次DB,丢数据也就丢…

JVM快速入门学习笔记(二)

临近过年,事太多,学习效率也好低,最近已经好久没搞学习了,发篇简单的学习笔记意思下吧 5. 沙箱安全机制 Java安全模型的核心就是Java沙箱(sandbox),什么是沙箱?沙箱是一个限制程序运…

Oracle 12c多租户特性详解:从Schema到PDB的变化与隔离

CDB和PDB的职责分离一些数据库管理员管理整个CDB,而另一些管理员管理单个的pdb。.管理整个CDB的dba作为普通用户连接到CDB,管理整个CDB和根的属性,以及pdb的一些属性。例如,这些dba可以创建、拔出、插入和删除pdb。它们还可以为根…

【c语言】文件操作详解

主页:114514的代码大冒险 qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ ) Gitee:庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 目录 前言 一、文件是什么 二、文件的打开和关闭 1.文件指针 2.文件的打开和关闭 三,文件的顺…

《计算机体系结构量化研究方法》 B.4 虚拟存储器 笔记

B.4 虚拟存储器 一、基本概念 1、虚拟存储器把物理存储器划分成块以后分配给不同的进程;采用一种保护机制来限制各个进程,使其仅能访问属于自己的块。 2、重定位机制允许同一程序在物理存储器中的任意位置运行。 3、页和段用于块,缺页错误…

SSM框架整合入门案例

文章目录SSM整合案例1,SSM整合1.1 流程分析1.2 整合配置步骤1:创建Maven的web项目步骤2:添加依赖步骤3:创建项目包结构步骤4:创建SpringConfig配置类步骤5:创建JdbcConfig配置类步骤6:创建MybatisConfig配置类步骤7:创建jdbc.properties步骤8:创建Spring…

《Buildozer打包实战指南》第七节 常见的打包问题

目录 无法访问xxx网址,连接超时 目标路径xxx已经存在,并且不是一个空目录 每次打包时间都要很久 待更新 在打包过程中难免会碰到一些问题,在本节,笔者会把自己碰到的一些问题的解决方案写出来,好让读者节省时间。 …

KaiwuDB CTO 魏可伟:1.0 时序数据库技术解读

大家好,首先非常感谢大家参与本次 KaiwuDB 1.0 系列产品发布会。作为国内数据库新生品牌力量,KaiwuDB 是浪潮集团控股的数据库企业,我们聚焦在工业物联网、数字能源、交通车联网、智慧产业等快速发展的重要领域,希望为各大行业客户…

06技术太卷我学APEX-技术太卷我学APEX

06技术太卷我学APEX-技术太卷我学APEX 0 概述 自学APEX第7天,用APEX做了一个自学的笔记APP,名称就叫《技术太卷我学APEX》 1 登录页面 登录页面设置:就改了下名称和加上了测试账号。 登录页面效果: 这个是 APEX功能页面之一…

前端面试题合集-第一篇

前端面试题合集-第一篇 🔔每周不定时更新! ⛄️不要让自己失去竞争力! ☀️哪里都不是避风港,保持竞争力! 1. CSS选择器的优先级 !important>内联>id选择器>类选择器>标签选择器>通配符选择器>继承 在同一…

Java IO流补充 - Properties - IO流框架commons-io

文章目录IO流补充知识Properties结合IO流集合IO流框架IO流补充知识 Properties结合IO流集合 我们先来认识Properties属性集对象 Properties其实就是一个Map集合,但是我们一般不会当集合使用,因为HashMap更好用。 Properties核心作用: 属性文件&#xf…

设计模式_行为型模式 -《观察者模式》

设计模式_行为型模式 -《观察者模式》 笔记整理自 黑马程序员Java设计模式详解, 23种Java设计模式(图解框架源码分析实战) 概述 定义 观察者模式,又被称为发布-订阅(Publish / Subscribe)模式&#xff0c…

RSA与证书

这篇文章详细讲述一下RSA与证书的相关内容。内容有点多,但都是干货。 一、RSA算法 1.1简介 RSA算法是由美国三位科学家Rivest、Shamir和Adleman于1976年提出并在1978年正式发表的公开密码算 法,其命名取自三位创始人名字的首字母缩写。该算法基于数论…

CSS 计数器

CSS 计数器 CSS 计数器可让你根据内容在文档中的位置调整其显示的外观。例如,你可以使用计数器自动为网页中的标题编号,或者更改有序列表的编号。 本质上 CSS 计数器是由 CSS 维护的变量,这些变量可能根据 CSS 规则跟踪使用次数以递增或递减…

【Git】利用 GIT 做版本控制

目录 写在前面 备份方法 效果展示 写在前面 在做项目开发时,不免需要进行版本更替或者使增加新功能等,这时很重要的环节是对版本进行备份,以便在新版本开发过程中出现问题,而当工程文件过大时,在对文件备份时需要占…

Java——多线程01(创建和启动,优先级调度,守护线程,出让/礼让线程,插队/插入线程)

目录1.多线程的创建和启动方式1.线程第一种启动方式(继承Thread类)2.多线程的第二种启动方式实现Runnable接口3.多线程的第三种启动方式实现Callable接口2.Thread多线程中的方法1.getName(), setName(),currentThread(),sleep2.Thread优先级调度方法3.守…

【手把手教你学会51单片机】数码管的动态显示

注:本文章转载自《手把手教你学习51单片机》!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小伙…

类的初始化2023018

类的初始化: 第一次使用某个类,例如Person类,系统通常会在第一次使用Person类时加载这个类并初始化这个类。在类的准备阶段,系统将会为该类的类变量分配内存空间,并指定默认初始值。当Person类初始化完成后&#xff0c…

高并发系统设计-Feed流系统设计

有两种实现方式:push和pull实现,首先讨论push模式 概念 我们在讲如何设计Feed流系统之前,先来看一下Feed流中的一些概念: Feed:Feed流中的每一条状态或者消息都是Feed,比如朋友圈中的一个状态就是一个Fe…

布隆过滤器算法

目录布隆过滤器主要有下面的参数:结论举例布隆过滤器主要有下面的参数: 1.假设数据量为n,预期的失误率为p(布隆过滤器大小和每个样本的大小无关)。 2.根据n和p,算出BloomFilter一共需要多少个bit位&#x…