我想从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
试一试:
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