关于Jenins持续部署,Send files or execute commands over SSH中设置的Exec command脚本构建成功,但是没有目标进程问题的解决

首先,我的Exec command中的shell脚本没有任何问题,jenkins控制台输出也是成功构建

但是去服务器中执行

ps -ef | grep java

发现我想要的进程没有进行。

解决方法,在服务器直接创建.sh文件:

在Send files or execute commands over SSH中设置Exec command的命令为执行该.sh文件的命令:

cd /var/jenkins_home/jar
chmod +x sy-club.sh
sed -i 's/\r//' sy-club.sh
sh sy-club.sh

立即构建:

去执行ps -ef | grep java命令:

发现有此进程

要cp的jar包和日志文件也都加载进来了

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在 Jenkins 使用 "Publish over SSH" 插件来部署 Java 应用可以使用下列脚本: ``` #! /bin/bash # 从 Jenkins 构建参数获取相关信息 JENKINS_BUILD_ID=$1 JENKINS_BUILD_NUMBER=$2 JENKINS_JOB_NAME=$3 JENKINS_BUILD_TAG=$4 # 连接到目标服务器并执行相应命令 ssh user@example.com << EOF # 在远程服务器上创建文件夹 mkdir -p /opt/jenkins/$JENKINS_JOB_NAME/$JENKINS_BUILD_NUMBER # 从 Jenkins 服务器上下载文件 scp jenkins@jenkins.example.com:/opt/jenkins/$JENKINS_JOB_NAME/workspace/$JENKINS_JOB_NAME/*.jar /opt/jenkins/$JENKINS_JOB_NAME/$JENKINS_BUILD_NUMBER # 停止应用 systemctl stop myapp.service # 备份当前应用 mv /opt/myapp /opt/myapp.bak # 将新应用文件移动到目标位置 mv /opt/jenkins/$JENKINS_JOB_NAME/$JENKINS_BUILD_NUMBER /opt/myapp # 启动应用 systemctl start myapp.service EOF ``` 在上面的脚本,我们使用 Jenkins 的构建参数来获取构建信息,然后连接到目标服务器并使用 scp 命令从 Jenkins 服务器上下载文件。接下来,我们停止旧版应用,将新版应用移动到目标位置,并启动新版应用。 ### 回答2: Jenkins是一个开源的持续集成工具,用于自动化构建、测试和部署软件项目。Publish over SSH是Jenkins的一个插件,用于将构建的项目文件通过SSH协议发布到远程服务器上。 在Jenkins使用Publish over SSH插件执行Java启动脚本时,首先需要在Jenkins管理界面安装和配置该插件。配置步骤大致如下: 1. 在Jenkins管理界面选择“系统设置”。 2. 在页面下方找到“Publish over SSH”插件的配置区域。 3. 点击“Add”按钮添加一个SSH服务器配置。 4. 在配置页面填写远程服务器的连接信息,包括主机名、SSH端口号、用户名和密码等。还可以选择“Advanced”选项以配置其他高级设置,如使用私钥登录等。 5. 点击“Test Configuration”按钮进行连接测试,确保连接配置正确无误。 6. 保存配置并返回到Jenkins主页。 接下来,我们可以在Jenkins的构建项目使用Publish over SSH插件启动Java脚本。具体步骤如下: 1. 打开需要使用SSH插件的Jenkins构建项目。 2. 在“构建环境”勾选“Send files or execute commands over SSH after the build runs”选项。 3. 在“SSH Server”一栏选择之前配置好的SSH服务器配置。 4. 在“Transfers”一栏可以设置要传输的文件和目标目录。 5. 在“Exec Command”一栏填写要执行的Java启动脚本命令。 6. 保存并触发构建。 当Jenkins执行该项目时,它将会使用SSH协议将构建产物和Java启动脚本传输到远程服务器上,并且在远程服务器上通过SSH执行该脚本。 通过使用Jenkins的Publish over SSH插件和Java启动脚本,我们可以方便地实现自动化部署和执行远程命令,从而简化软件项目的部署和管理过程。同时,该插件还支持其他高级功能和设置,如跳过主机密钥验证、使用跳板机访问远程服务器等,以满足不同场景下的需求。 ### 回答3: 用Jenkins的Publish Over SSH插件,可以通过SSH连接到远程服务器,并执行一个Java启动脚本。 首先,确保在Jenkins服务器上安装了Publish Over SSH插件,并在插件管理启用它。 然后,打开Jenkins的配置页面,在"系统设置"部分找到"Publish over SSH"配置项。点击"Add"按钮,配置SSH服务器的连接信息,包括远程服务器的IP地址、SSH端口号、用户名和密码。 接下来,在Jenkins任务,配置构建步骤。选择"Execute shell script on remote host using ssh"选项,并输入要执行的Java启动脚本的命令,例如: ``` java -jar /path/to/your/java/jar/file.jar ``` 保存并触发构建,Jenkins将通过SSH连接到远程服务器,并执行Java启动脚本。通过Publish Over SSH插件,你可以轻松地将构建输出发布到远程服务器。 这种方法非常适用于需要在远程服务器上执行Java应用程序的场景,例如部署到生产环境或测试环境。同时,Jenkins的发布和部署过程也能够自动化,并进行可靠的版本管理和回滚操作,极大地提高了开发和运维的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值