jenkins+Publish Over SSH 提示:Transferred 0 file(s)
之前公司用jekins来进行自动化发布,现在公司因没有运维,所以自己学习、并搭建了一个jenkins的环境来进行项目自动化部署。
不料在最后连接ssh后部署时,一直提示Transferred 0 file(s),个人理解为:传输文件为0。
现附上自己的问题描述和解决方法:
安装插件
系统管理→管理插件→可选插件→Artifact Uploaders→Publish Over SSH 安装即可。
配置远程服务器

如图所示是jenkins上的ssh插件的公有配置部分,下面详细讲解下(其实比较简单,但是自己遇坑了也就记录一下)
Passphrase:如果自己在本地生成的ssh key没密码的话,这里不需要填写
Path to key:这里填写私钥的地址
key:这里填写私钥的内容(cat ~/.ssh/id_rsa查看)
Name:这里自己填写一个好记的名字
Hostname:主机ip或者域名
Username:登录机器的用户名
Remote Directory:远程的操作目录(这个需要自己的对应的服务器上创建好目录,并且登录名对应的用户需要有相应的权限)
******注意:这种利用私钥访问的办法需要事先将你的公钥放置到对应服务器的~/.ssh/authorized_keys中(一般 利用ssh-copy-id 命令免密登录)*****
以上登录方式不推荐,点击“Use password authentication, or use a different key”,利用私有配置登录才是我们推荐的
Passphrase / Password:这里填写username登录名对应的密码(其他的配置这里就不叙述了,看字段名应该就能明白)
一般填写密码就能登录了,点击Test configuration,出现Success表示连接成功;但有时候会报如下错:
Failed to connect or change directory
[java.net.ConnectException: Connection refused: connect]]
这是由于服务器上的sshd服务没有开启导致的,登录到服务器上执行命令
sudo service sshd start //开启sshd服务
或者是如下错误
jenkins.plugins.publish_over.BapPublisherException: Failed to connect session for config [131]. Message [Auth fail]
这是由于账号密码不一致导致的,自行核查下账号密码.或者采用在私有配置中利用私钥来进行登录(这种方式参考上面的配置,在path to key 和key中填好相应的内容)
配置参数
在project中配置参数

保存后点击立即构建。在日志中出现如下的文字
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
去远程服务器的目录下查看文件,也未能找到。
说明文件发送失败。
当然已经提示传输0个文件,在系统配置时点击test如果成功的话那就是目录的问题。
查询了一些文档明白了具体的意思
- Source files
**/*表示sskzmz这个job的工作目录下所有的文件和目录。 - Remove prefix 该操作是针对上面的source files目录,会移除匹配的目录。通常留空。
- Remote directory 该操作是基于设定的服务器目录进行。这里我的服务器配置是的/www. 因此这里应该写sites/sskzmz即可。
- Exec command 远程服务器执行的命令。例如可以输出 service nginx restart 或者/www/xx. sh 均可。
- 高级:
- Exclude files:排除的文件(在你传输目录的时候很有用,使用通配符,例如:/.log,/.tmp,.Git/)
- Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你这儿更改了,上面的内容也需要更改)
- No default excludes:禁止默认的排除规则(具体的自己看帮助)
- Make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。(个人理解)
- Remote directory is a date format:远程目录建立带日期的文件夹(需要在Remote directory中配置日期格式)
- Flatten files:只上传文件,不创建目录(除了远程目录)
- Exec timeout (ms):运行脚步的超时时间(毫秒)
- Exec in pty:模拟一个终端执行脚步
- Add Transfer Set:增加一个配置
在jenkins中publish over SSH plugin插件的文档中说到Source files只写目录名称会自动添加/**,功能是匹配目标目录下的所有文件;
不过我试了试好像不大管用,不知道是版本原因还什么。
参考链接:
https://www.jianshu.com/p/7c961fd5975c
jenkins+Publish Over SSH 提示:Transferred 0 file(s)的更多相关文章
- SSH: Transferred 0 file(s) 解决
Jenkins搭建过程中,使用 Publish Over SSH 插件.发生 SSH: Transferred 0 file(s). 百度.google了几个小时,终于找到答案,特此记录. 配置如下: ...
- jenkins publish over ssh使用
1.在需要远程的ubuntu服务器上生成密钥,指令:ssh-keygen 一路默认下去,会在~/.ssh目录下生成 id_rsa(私钥).id_rsa.pub(公钥) 2.复制公钥文件id_rsa ...
- Jenkins publish over ssh 路劲配置问题 记录
每次通过jenkins 实现 maven项目编辑后 自动通过 ssh发布到 服务器的功能时,对配置的路劲有疑问,特整理出来 前提:服务器路径 /home/ubuntu/aps 目标: 构建后的j ...
- Jenkins publish over ssh 上传 文件夹 配置方式
需要把编译后 目录下的 lib文件夹下的jar包都上传到服务器上 1.配置 2.完成截图 3.服务器截图 注意: 真实脚本 建议写 全路径 注意:多条命令时 添加 英文分号
- jenkins使用Publish Over SSH中遇到的问题
在jenkins中想使用publish over ssh来在构建后发送XML或PNG文件至服务器,以便做其它的操作,安装完publish over ssh后,填加构建,发现在构建失败时,不传送文件,老 ...
- Jenkins通过Publish over SSH插件实现远程部署
Jenkins通过Publish over SSH插件实现远程部署 步凑一.配置ssh免秘钥登录 部署详情地址:http://www.cnblogs.com/Dev0ps/p/8259099.html ...
- Jenkins系列-Jenkins通过Publish over SSH插件实现远程部署
配置ssh免秘钥登录 安装Publish over SSH插件 插件使用官网:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plug ...
- Jenkins的使用(三)-------Publish over SSH和Publish over FTP
七.构建后操作 1.使用Publish over SSH 1.左边菜单栏 Manage Jenkins --->ManagePlugins--->可选插件,然后搜索 Publish ...
- docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker
在 docker:(3)docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -v sudo docker run -p : --name tomcat_xiao_volume ...
随机推荐
- js总结33 :javascript-DOM节点属性
1 设置节点属性三个方法: 获取:getAttribute(名称) 设置:setAttribute(名称, 值) 删除:removeAttribute(名称) 举个例子: <!DOCTYPE h ...
- CodeForces 682C Alyona and the Tree (树上DFS)
题意:给定一棵树,每个叶子有一个权值,每条边也有一个权值,现在让你删最少的结点,使得从任何结点出发到另一个结点的边上权值和都小于两个结点的权值. 析:很明显是DFS,不过要想找出最少的结点可能不太容易 ...
- after modifying system headers, please delete the module cache at
5down votefavorite 2 I don't know how I modified a iOS SDK file, but Xcode say I did. Here is what t ...
- myeclipse设置默认的jsp打开方式
- Mybatis 拦截器报错org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)
出现此错误的原因是MyBatis 3.4.0 之后,StatementHandler的prepare方法做了修改,如下: 在args = { Connection.class }中添加第二个参数,即 ...
- [LeetCode 题解]:Gray Code
题目描述: The gray code is a binary numeral system where two successive values differ in only one bit. G ...
- putty连接fedora
putty提示“Connection refused” 但可以ping通 经查,解决方法如下: 首先判断是否安装ssh rpm -qa openssh rpm -qa openssh-server 之 ...
- Djangorestframework编写post接口
前提:已经有Django环境 一.安装 pip install djangorestframework 二.编写视图 import json from django.shortcuts import ...
- atan2()如何转换为角度
atan2()如何转换为角度 Math.atan2()函数返回点(x,y)和原点(0,0)之间直线的倾斜角.那么如何计算任意两点间直线的倾斜角呢?只需要将两点x,y坐标分别相减得到一个新的点(x2-x ...
- centos 查看mysql数据库命令
使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases; ...