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 ...
随机推荐
- smarty内置函数、自定义函数
1.把字符串里的d字母替换成h格式:{'d'|str_replace:'h':$str}; d要查找的字符 h要替换的字符 $str字符串 2.function test($param){$p1=$p ...
- 路飞项目背景,contentType以及django缓存
昨日回顾: 分页器: 普通分页 # 普通分页 from rest_framework.pagination import PageNumberPagination -每页的大小(默认) -查询的时候, ...
- java 集合综述(总结于多位博友)
http://www.cnblogs.com/shunran/p/3459065.html(good) java集合类主要负责保存.盛装其他数据,因此集合类也称容器类. java集合类分为:set.l ...
- 暂停、恢复CALayer 动画
CALayer都是实现了CAMediaTiming协议(或者叫做接口).所以layer的动画有一个很有意思的属性speed.如果一个layer的动画速度变成0.0的时候,很显然这个动画就不再动了.设置 ...
- centos7 minimal 安装 &网络配置
1.下载centos7manimal.iso 下载地址: http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Min ...
- 使用InstallUtil安装或卸载服务
使用InstallUtil安装或卸载服务 一.安装服务: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe D:\MyServ ...
- orcal 锁表
--查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, ...
- vc6.0 Buile菜单下 Profile的作用
Profile的作用 帮助你分析并发现程序运行的瓶颈,找到耗时所在,同时也能帮助你发现不会被执行的代码.从而最终实现程序的优化. Profile的组成 Profile包括3个命令行工具:PREP,PR ...
- 一、SecureCRT 8.0 客户端连接服务器
1.通过远程连接服务器linux,连接的是ssh服务: 如图:ssh2协议是ssh的升级版. 连接模式: 2. Ctrl+d 快速退出==exit/quit/logout 3.SecureCRT 改变 ...
- [Swift]字符串大小写转换,同时实现本地化或设置语言环境
在NSString中提供了3种字符串大小写转换方式:1. 转换字符串大小写2. 转换字符串大小写,并实现本地化3. 转换字符串大小写,并设置语言环境. 一. 转换字符串大小写如果只是想单纯的将字符串进 ...