jenkins:Send files or execute commands over SSH使用方式

为了方便起见:192.168.1.195服务器=A服务器,192.168.1.9服务器=B服务器

背景:本人在A服务器上搭建了一个jenkins环境,同时我的应用服务器是B服务器,这个时候我应该使用jenkins的SSH插件去把A服务器的war包丢到B服务器上去,然后再启动B服务器的tomcat即可,但是在这个步骤上遇到了问题:

由于A服务器上jenkins的workspace存在多个项目,如下图:

A服务器上的workspace存在3个项目,gdxf是dev分支项目,gdxf_uat是测试分支项目,gdxf_prod是正式环境分支项目,因此我在使用SSH的时候的Source files的路径写的是 如下路径,这个时候我的war包一直丢不到B服务器上,如下图:

然后查阅相关资料得到Source files的路径是相对于workspace的路径,那我上面的路径是没毛病的啊,最后看了jenkins的SSH插件使用方法,提供了两种Source files的路径方式:

  1. **/*.war
  2. target/*.war

其实这两种方法的效果是一样的,那么我就使用 **/*.war路径:

发现可以在我B服务器的 zip路径下找到core.war包,但是发现并不是gdxf_prod的war包,而是gdxf路径下面的war包,显而易见:使用**/*.war包不能保证core.war包的正确性,那么我就想了一个思路,那就是在将A服务器上的war包丢到B服务器之前先将其他非gdxf_prod的文件夹删除掉,这个时候就只剩下gdxf_prod下的war包了因此就能保证传输的正确性。因此在构建war包之前将其他项目删除掉:

脚本:

rm -fr !\(gdxf_prod|gdxf_prod@tmp\)

rm -fr 就不在做赘述,!表示:非;\( 中的\表示转义;这条命令的意思是:删除非gdxf_prod和gdxf_prod@tmp的所有文件,因此在进行后续操作即可。

由于正式环境急需启动,这个是我的临时解决方案,后续会继续补充。

刚接触jenkins,如有错误,欢迎批评指正。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值