使用Jenkins管道脚本从Windows到Linux的SCP。

问题描述 投票:0回答:1

我想做 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
jenkins jenkins-pipeline scp
1个回答
1
投票

试试这个。

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

© www.soinside.com 2019 - 2024. All rights reserved.