七. jenkins部署springboot项目(4)-linux环境--远程调试
前提:linux环境,jenkins服务器和springboot服务器不在一台机器。
linux环境,jenkins这里就不说了,主要说下和windows环境的不同。
1. jenkins服务器连接springboot服务器通过秘钥连接,所以需要设置免密码登录,参照:https://www.cnblogs.com/gexiaoshan/p/9404424.html
2. 在jenkins上,系统管理-系统设置里配置秘钥路径,如下图:

Passphrase:密码(key的密码,如果你设置了,没有设置的话,这里不需要填)
Path to key:key文件(私钥)的路径
Key: 秘钥
我这里只要填Path to key: /root/.ssh/id_rsa
SSH Servers配置类似,就不详述了。
3. job的配置,主要如下:

linux上的shell脚本如下:
#!/bin/bash echo "deploying $project_name..."
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
JAVA_HOME=/data/tools/jdk1.8
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export JAVA_HOME PATH CLASSPATH DEPLOY_DIR=/data/services
JAR_FILE=$3
PROJECT_NAME=$1
BUILD_NUMBER=$2
BUILD_DATE=$(date +%Y%m%d) DEPLOY_BACKUP_DIR=/data/backup echo "start create backup folders..."
if [ ! -d $DEPLOY_BACKUP_DIR ];then
mkdir -p $DEPLOY_BACKUP_DIR
echo "create folder $DEPLOY_BACKUP_DIR"
fi CURRENT_BUILD_BACKUP_DIR=$DEPLOY_BACKUP_DIR/$PROJECT_NAME/$BUILD_DATE/$BUILD_NUMBER
mkdir -p $CURRENT_BUILD_BACKUP_DIR
echo "create folder $CURRENT_BUILD_BACKUP_DIR" cp $DEPLOY_DIR/$JAR_FILE $CURRENT_BUILD_BACKUP_DIR/$JAR_FILE
echo "create backup folders completed..." cd $DEPLOY_DIR mkdir -p $DEPLOY_DIR/$PROJECT_NAME
mv $DEPLOY_DIR/$JAR_FILE $DEPLOY_DIR/$PROJECT_NAME/$JAR_FILE
cd $DEPLOY_DIR/$PROJECT_NAME echo "ps -ef | grep $JAR_FILE | grep -v grep | awk '{print $2}'"
pid=`ps -ef | grep $JAR_FILE | grep -v grep | grep -v $$ | awk '{print $2}'`
echo "current pid is $pid"
if [ -n "$pid" ]
then
echo "kill current process.pid:[$pid]"
kill -9 $pid
fi #java -jar $JAR_FILE --spring.profiles.active=test > nohup.log & java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=0.0.0.0:$4,suspend=n -jar $JAR_FILE --spring.profiles.active=test -Xms256m -Xmx256m > nohup.log &
if [ $? = 0 ];then
sleep 10
tail -n 50 nohup.log
fi echo "deploy $PROJECT_NAME is completed."
这里启动脚本:
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=0.0.0.0:$4,suspend=n -jar $JAR_FILE --spring.profiles.active=test -Xms256m -Xmx256m > nohup.log &
开启了一个debug端口($4:作为参数传进来的),用户测试环境上debug.
调试方式:
在idea上进行配置,如下:

Host:是springboot项目的服务器ip
Port:是上面说的debug端口号,并不是springboot项目本身的端口号。
配置好后就启动debug:

这时访问测试环境地址,就会进入本地debug。
欢迎扫码交流:

七. jenkins部署springboot项目(4)-linux环境--远程调试的更多相关文章
- 六. jenkins部署springboot项目(3)--windows环境--远程windows server服务器
前提:jenkins服务器和windows server服务器不在一台机器上 对于jenkins服务器上编译好的jar或war包如何推送到windows server服务器上. 参照网上的,在wind ...
- 五. jenkins部署springboot项目(2)--windows环境--服务
前提:jenkins和springboot运行在同一台机器 springboot 通过winsw部署为服务 winsw 下载地址:https://github.com/kohsuke/winsw/re ...
- 四. jenkins部署springboot项目(1)--window环境
前提:jenkins和springboot运行在同一台机器 springboot项目使用git和maven jenkins所需的插件如Maven,Git等这里就不再详述. 1.jenkins配置git ...
- Jenkins部署springboot项目
记录jenkins如何部署springboot项目(jar类型的) 一.首先需要先配置好jenkins的基本配置(jdk.maven--),可在系统管理-->>全局工具配置中进行配置. 配 ...
- IDEA远程快速部署SpringBoot项目到Docker环境
一:基础准备 1.首先在linux服务器安装Docker环境,具体安装步骤及Docker使用参考官网或网络资料(这里重点是快速部署项目到Docker环境) 2.配置Docker远程连接端口 1.vim ...
- 部署Springboot项目到Linux云服务器
前言 环境:IDEA.Springboot.Maven(自己电脑安装的Maven) 一.打包jar包 检查自己的pom.xml文件下面有无Maven的依赖插件,即有无如下: <build> ...
- springboot项目命linux环境下命令启动
测试环境:dev nohup java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 \-Dcom.s ...
- springboot项目使用idea开启远程调试
远程调试是调试服务器的有效手段,远程服务器运行的应用可以在本地代码中打断点调试,能让开发人员准确定位服务器上的问题. 一.开启远程调试前提:本地代码与服务器代码一致, 二.开启远程调试步骤 1.开发工 ...
- mac和linux下使用Docker,部署SpringBoot项目到docker
主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...
随机推荐
- JavaScript GetAbsoultURl
var img = document.createElement('A'); img.src = "/img/weixin.jpg"; // 设置相对路径给Image, ...
- vim插件管理器:Vundle的介绍及安装(很全)(转载)
转载自:https://blog.csdn.net/zhangpower1993/article/details/52184581 背景 Vim缺乏默认的插件管理器,所有插件的文件都散布在~/.vim ...
- HTML5基本标签<搬运>
HTML语言基本标签: 创建一个HTML文档<html></html> 设置文档标题以及其他不在WEB网页上显示的信息<head></head> 设置文 ...
- PHP日期加减函数
<?phpecho "今天:",date('Y-m-d H:i:s'),"<br>";echo "明天:",date('Y ...
- 【Python】Python实现Excel用例直接导入testlink-UI界面小工具
1.写在前面 testlink上传用例一种方法是excel转换为xml,然后再用xml上传,还有一种是调用api进行上传.最开始写了个转换工具,是将excel转换为xml,然后在testlink里上传 ...
- anaconda安装教程、管理虚拟环境
原文链接:https://blog.csdn.net/ITLearnHall/article/details/81708148 另可参看文章:https://www.cnblogs.com/jonin ...
- CodeChef Little Elephant and Balance
Given an array A1,A2...AN, you have to print the size of the largest contiguous subarray such that L ...
- hdu6311 Cover (欧拉路径输出)
hdu6311Cover 题目传送门 题意:有最少用多少条边不重复的路径可以覆盖一个张无向图. 分析:对于一个连通块(单个点除外),如果奇度数点个数为 k,那么至少需要max{k/2,1} 条路径. ...
- ajax axios 下载文件时如何获取进度条 process
最近项目需要做一个下载文件的进度条,看网上上传文件进度条下载,特分享出来方便大家查阅 <!DOCTYPE html> <html> <head> <m ...
- linux处理器子系统调优