Jenkins Windows Server系统的文件上传到Linux服务
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
一. 背景
在进行Java项目开发时,出现了需要将通过Jenkins编译打包的SpringBoot服务部署至Linux服务器的需求。原本计划使用Windows 10的scp命令进行文件传输,但在Windows Server上未发现该命令。
二. 方案
解决方案为使用pscp软件,一款与putty同源的远程文件拷贝工具,用于实现Windows到Linux的文件传输。首先从网址 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 下载pscp.exe文件,并将其复制到C:\Windows\System32目录下简化使用流程。
文件夹上传的命令示例为:
pscp -r -l root -pw root D:\jenkins\com-omg\target 192.168.20.200:/root/com-omg
而上传单个文件的命令示例为:
pscp -r -l root -pw root D:\jenkins\com-omg\target\com-omg-1.0.0.jar 192.168.20.200:/root/com-omg
其中参数 "-r" 用于递归上传文件夹,"-l" 指定用户名,"-pw" 用于输入用户密码。接着是需要上传的源文件夹或文件,最后是目标Linux服务器的IP和目标路径。
通常为了简化操作,会将这些命令写入批处理文件中,然后在Jenkins中调用或直接在Jenkins构建项目中写入这些命令。
三. 问题
初次在Jenkins中执行pscp命令可能会失败,因为系统会提示是否缓存用户登录信息。解决办法是在Jenkins服务所在的Windows系统中通过cmd窗口执行pscp命令,上传任意文件至Linux系统指定目录,并在提示时输入"Y"进行确认。完成这一步骤后,在Jenkins中再次构建就不会出现相同的错误。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)