Jenkins ssh windows远程主机发布执行脚本
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
1、插件中心安装插件Publish Over SSH
2、配置远程主机System Configuration-Configure System
2-1 windows需安装和开启openssh服务本篇不再详述
2-2配置远程主机目录
3、 在job中选择配置的主机进行发包和执行脚本bat
在job的配置选项中-构建后操作选择之前配置的主机
4、 windows下使用的bat脚本
题外话本人为java后端对bat脚本知之甚少在探索过程中遇到了一下问题bat脚本在windows机器上能正常执行在jenkins上调用的时候不是不生效就是执行后不能自动退出。
1、针对执行bat不生效的问题我试图在Jenkins上执行写脚本执行出现的问题是项目可以正常启动但是项目日志输出在jenkins上无法中断指定日志输出路径后问题始终没有解决。于是还是采用执行bat脚本方式
2、但是又出现jenkins不清楚或者说得不到bat脚本是否执行完成始终无法断开直到设置的timeout时间后才断开尝试手动断连但是没有成功。
3、最后测试成功的结论首先java项目必须用javaw -jar后台启动而不是java -jar然后必须保证脚本bat的执行必须不能弹出dos黑窗口必须在后台执行Jenkins才能收到结果下面将bat脚本附上供遇到同样问题的同学参考
start.bat
@echo off
start javaw -jar D:\server\power.jar ->D:\server\startLog.log
exit
stop.bat
@echo off
set port=8087
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port
taskkill /f /pid %%m
goto q
)
:q
exit 0
restart.bat
@echo off
set port=8087
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port
taskkill /f /pid %%m
goto start
)
:start
start javaw -jar D:\server\power.jar ->D:\server\startLog.log
exit 0