我想做 SCP
从Windows Jenkins节点复制到Linux服务器。在这个设置中,Windows机器是Jenkins的从机,而我要复制的目标服务器是Linux。
下面是我的Jenkins流水线脚本。在下面的脚本运行之前,我正在克隆仓库,然后构建项目,最后创建一个 .jar
文件。我想把这个文件复制到Linux服务器上。
stage('SCP JAR file') {
steps {
bat 'scp /c/Jenkins/workspace/migration/test-project/build/libs/ssupservice-0.0.1-SNAPSHOT.jar rxp096p@server:/home/rxp096p/testing'
}
}
}
我的工作目录是 /c/Jenkins/workspace/migration/test-project/
. 在给定目录内。build/libs
文件夹被创建在所需的 .jar
文件是存在的。
运行上面的脚本会出现以下错误。
/c/Jenkins/workspace/migration/test-project/build/libs/ssupservice-0.0.1-SNAPSHOT.jar: No such file or directory
试试这个。
pipeline {
agent any
stages {
stage('SCP JAR file') {
steps {
bat '"c:\\Program Files\\git\\usr\\bin\\scp.exe" -i "c:\\Users\\tom\\.ssh\\azure\\id_rsa" C:\\Users\\tom\\.jenkins\\workspace\\scp-to-linux\\abc.jar [email protected]:abc.jar'
bat '"c:\\Program Files\\git\\usr\\bin\\ssh.exe" -i "c:\\Users\\tom\\.ssh\\azure\\id_rsa" [email protected] ls -ltr'
}
}
}
}
注意:: 正在进行 scp
如果您没有指定 目的地 文件名,它将在远程服务器上创建文件,文件名是 完整的源路 名字。例如,在我的例子中,它将创建名为 C:\Users\tom\.jenkins\workspace\scp-to-linux\abc.jar
在远程服务器上,如果我没有指定这个语法。[email protected]:abc.jar