美文网首页Jenkins
解决SSH: Transferred 0 file(s)

解决SSH: Transferred 0 file(s)

作者: 有时右逝 | 来源:发表于2018-05-08 18:53 被阅读0次

    前言

    公司项目使用jenkins来做自动部署。其中使用到publish over SSH plugin插件。
    该插件可以实现项目的远程发布。在使用中遇到一个坑,一直未能解决

    问题

    • 安装插件. 进入插件管理,输入上面的名字即可。

    • 配置远程服务器。


      image.png

      记得点击test 出现success才算配置ok

    • 在Job中配置参数


      image.png
    • 点击立即构建。在日志中出现如下的文字。

    SSH: EXEC: completed after 400 ms
    SSH: Disconnecting configuration [8楼centos7-test] ...
    SSH: Transferred 0 file(s)
    Build step 'Send files or execute commands over SSH' changed build result to SUCCESS
    Finished: SUCCESS
    

    去远程服务器的目录下查看文件,也未能找到。
    说明文件发送失败。

    解决

    该问题出现的初期,我尝试找一下问题所在。未能找到。遂放弃解决。转而通过 执行远程命令来实现文件传输。
    近期得一些空闲,于是开始研究问题原因所在。

    在咨询阅读官方的说明文档之后,一一尝试,总算解决了问题。
    官方文档

    这里举例说明,如果实现名称为sskzmz的任务的项目文件发送到远程服务器/www/sites/sskzmz/目录下。

    注: 构建文件所在的目录是 /var/jenkins_home/workspace/sskzmz

    则配置如下:

    • Source files **/* 表示sskzmz这个job的工作目录下所有的文件和目录。
    • Remove prefix 该操作是针对上面的source files目录,会移除匹配的目录。通常留空。
    • Remote directory 该操作是基于设定的服务器目录进行。这里我的服务器配置是的/www. 因此这里应该写sites/sskzmz即可。
    • Exec command 远程服务器执行的命令。例如可以输出 service nginx restart 或者/www/xx. sh 均可。

    重点一: source files 要基于任务的目录进行。不支持绝对路径。如果配置不对,则找不到文件。上例中/var/jenkins_home/workspace/sskzmz 是任务目录。最终jenkins会选择 /var/jenkins_home/workspace/sskzmz/**/* 查询所要传送的文件。

    重点二: Remote directory 要基于你远程服务器的目录配置。你远程服务器配置的基准是/www 。则最终的文件目录是 /www+ Remote directory的配置参数。不支持绝对路径。

    只要理解上面这2点,就不会再出现SSH: Transferred 0 file(s)

    总结

    要学会看文档,即使是英文的。

    相关文章

      网友评论

        本文标题:解决SSH: Transferred 0 file(s)

        本文链接:https://www.haomeiwen.com/subject/rddwrftx.html