Jenkins Windows Server系统的文件上传到Linux服务

2022-03-08 10:52:48 浏览数 (1)

一. 背景

  Java项目要求,通过 jenkins 把 maven 工程编译打包后的SpringBoot服务部署到另一台 Linux server上中。通过通过查找发现 Windows 10 使用 scp 命令。

但是,购买的windows Server 怎么看却没有发现这个命令。

二. 方案

  在网上搜到了一个 pscp 这个软件

代码语言:javascript复制
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

这个软件和 putty是一家的,所以可以放心使用,pscp可以上传文件和文件夹,可以满足从 Windows 远程拷贝文件到 Linux 服务

具体步骤

  • 下载后,是一个exe文件pscp.exe,把pscp.exe直接复制到C:WindowsSystem32下,这样在使用时,可以不用带上pscp.exe的完整路径,简单省事
  • 上传文件夹使用命令
代码语言:javascript复制
 pscp -r -l root -pw root D:jenkinscom-omgtarget 192.168.20.200:/root/com-omg

也可以上传文件

代码语言:javascript复制
pscp -r -l root -pw root D:jenkinscom-omgtargetcom-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构建就不会在出现错误了。

0 人点赞