2014-11-20 29 views
7

我已经阅读thisthisthis的答案,但他们都不帮我。 我使用Windows机器詹金斯使用Jenkins的SSH插件发布0个文件

我的工作区,只有如下的文件

C:\詹金斯\工作区\ COPY_FILE \ DevOps的\资源\ FILE1.TXT C:\詹金斯\工作区\ COPY_FILE \的DevOps \资源\ FILE2.TXT

我想通过ssh只发布FILE1.TXT

我加入了插件发布在SSH:

Source files DevOps\resource\file1.txt 
Remove prefix DevOps\resource 
Remote directory /tmp/ 

不过我在看到结果:

C:\Jenkins\workspace\Copy_file\DevOps\resource\file1.txt 
SSH: Connecting from host [hhhhh] 
SSH: Connecting with configuration [Redhat1] ... 
SSH: Creating session: username [hhhh], hostname [iiiiii], port [22] 
SSH: Connecting session ... 
SSH: Connected 
SSH: Opening SFTP channel ... 
SSH: SFTP channel open 
SSH: Connecting SFTP channel ... 
SSH: Connected 
SSH: Remote root is not absolute, getting absolute directory from PWD 
SSH: Disconnecting configuration [Redhat1] ... 
SSH: Transferred 0 file(s) 
Build step 'Send files or execute commands over SSH' changed build result to SUCCESS 
Finished: SUCCESS 
  1. 为什么发送0文件?
  2. 我该如何让路径是绝对的,以便将它放到/ tmp /而不是放在/ home/user/tmp中?

修订

enter image description here

+1

您在使用本[插件](https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin)吧?如果为true,您可以发送您的配置参数(如[that](https://wiki.jenkins-ci.org/download/attachments/53608875/global_ssh_advanced.png?版本= 1&时间modificationdate = 1302446662000))? – ajnavarro 2014-11-25 14:36:25

+1

另外,你有一个错字吗(**源文件DevOps \ resource \ file1.tx **,缺少“t”)? – ajnavarro 2014-11-25 14:38:03

+1

是的,它是一种类型。谢谢!我添加了一张照片 – Dejell 2014-11-26 12:33:19

回答

1

我一直在研究这个插件,但我不能找到为什么doesn't工作的原因。

Q.A.我公司的团队使用this插件,它工作正常。

通过尝试回答你的问题我会尽量解释这个新的插件配置:

  • 进入全局配置: Example global configuration

    • 主机名:是-BVT-RH- 01.XXXXX.com
    • port:
    • 根存储库路径:/(允许将文件放入/ tmp /而不是/ home/user/tmp。根库路径必须存在,你可以参考它,应该是用户谁也发布文件的访问)
    • 用户名:bvtuser
    • 密码:[YOUR_SSH_PASSWORD]
  • 进入用户的特定作业的配置: Example job configuration

    • SCP网站:是-BVT-RH-01.XXXXX。COM
    • 来源:的DevOps \资源\ FILE1.TXT(路径是从工作区根构造。)
    • 目的地:TMP/

希望它能帮助!

4

我有同样的问题,我在这个帖子结束寻找解决方案。

  • 具体是什么发生在我身上,是我们在插件配置使用的用户没有访问“根路径”(“/”),这导致连接是默认位于“/家用/ usery /”。

  • 确保您使用的用户可以访问绝对路径“/ tmp /”,因为当我尝试使用与此用户创建此路径相同的配置时(/ home/usery/tmp而不是在/ tmp /路径):

SSH:远程root不是绝对的,从PWD SSH获得绝对目录:cd [/家庭/ usery] SSH:OK SSH命令mkdir [TMP] SSH :OK SSH:cd [tmp] SSH:OK SSH:put [myjar.jar]

也许你的用户没有权限创建一个新目录。

  • 尝试使用用户的“家”的路径,例如,尝试创建一个路径“/家/ usery /和localdir/anotherDir”,然后更改“远程目录”,以“和localdir的配置/ anotherDir”。

  • 最后,我们安装詹金斯在Windows机器上,后来我们把它移动到一台Linux机器,你必须要小心的路径分隔符“\”和“/”,记住这一点设置:

    源文件 和 删除前缀

我希望我的意见帮助你。

0

我结束了使用

  1. 执行shell插件文件传输上。

  2. 然后使用通过SSH插件发布来使用上载文件中包含的SQL脚本对我的RDS实例执行mysql命令。