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

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

我想从Windows Jenkins节点到Linux服务器执行SCP。在此设置中,Windows计算机是Jenkins从属服务器,我要复制的目标服务器是Linux。

下面是我的詹金斯管道脚本。在运行以下脚本之前,我将克隆存储库,然后构建项目,最终创建一个.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.