Jenkins Windows Server系统的文件上传到Linux服务
一. 背景
Java项目要求,通过 jenkins 把 maven 工程编译打包后的SpringBoot服务部署到另一台 Linux server上中。通过通过查找发现 Windows 10 使用 scp 命令。
但是,购买的windows Server 怎么看却没有发现这个命令。
二. 方案
在网上搜到了一个 pscp 这个软件
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
这个软件和 putty是一家的,所以可以放心使用,pscp可以上传文件和文件夹,可以满足从 Windows 远程拷贝文件到 Linux 服务
具体步骤
下载后,是一个exe文件pscp.exe,把pscp.exe直接复制到C:\Windows\System32下,这样在使用时,可以不用带上pscp.exe的完整路径,简单省事
上传文件夹使用命令
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:目标文件夹
如果没有错误(如用户名或密码不正确, 路径或文件不存在等)整个命令在 cmd 下执行就可以上传文件到 Linux 了。在使用时,一般把命令(有多个命令)写成一个批处理bat文件, 然后再 jenkins 里调用 bat;也可以在 jenkins的构建项目中写命令
三. 问题
第一次在 jenkins 执行上面的命令时会失败,提示需是否要缓存用户的登录信息。只要在 Jenkins 服务所在的 Windows 系统中打开 cmd 窗口执行一下 pscp 命令,上传任意一个文件到 Liunx 系统的任意目录,根据提示输入Y。把这个任意文件上传到 Linux系统之后,再去jenkins构建就不会在出现错误了。
分享&在看