【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127

一、问题描述

今天一个自动化的Jenkins任务,编译完后使用ssh连接另外的主机来执行自动化脚本的时候出错了,报错如下所示:

【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第1张图片

BUILD SUCCESSFUL in 6m 37s
578 actionable tasks: 561 executed, 17 up-to-date
Build step 'Invoke Gradle script' changed build result to SUCCESS
[SSH] executing post build script:
=""


bash: =: command not found
[SSH] exit-status: 127
SSH: Current build result is [FAILURE], not going to run.

Jenkins上这个自动化脚本的配置如下所示:

【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第2张图片

这个问题分析了很久,一直找不到原因,屡次编译失败。

【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第3张图片

二、解决问题

2.1 google答案未果

搜遍了google,只看到

http://jenkins-ci.361315.n4.nabble.com/Junit-quot-bash-command-not-found-quot-td4688883.html

有一个类似的问题,但是只有问题描述,没有解决方案。

【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第4张图片

2.2 自己分析解决

1、我得确认这台服务器是不是有问题,是不是连接不上?

我在XShell客户端,通过ssh命令是可以连接到这台服务器的,说明这台服务器是正常的。
【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第5张图片

2.3 怀疑是Jenkins的【Publish Over SSH】插件问题

发现Jenkins上的【Publish Over SSH】插件 版本很老了。
【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第6张图片
Jenkins平台本身版本也比较老了
【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第7张图片

但是由于所有软件的同事都用同一个Jenkins,我可不敢为了一个小的Jenkins自动化任务而去直接升级,到时候导致其他人不可用,就悲剧了。

关于升级插件的方案暂时搁置,因为我发现有其他人也使用了【Publish Over SSH】插件,但是是在另外一个编译节点编译,且SSH到另外一台服务器的,别人是正常使用的。

因此有可能只是 Jenkins编译节点和这台测试服务器之间出现了问题。

2.4 怀疑是Jenkins编译节点的问题

2.4.1 分析Jenkins编译节点

我最终怀疑,是不是这个Jenkins编译节点出现了问题。

【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第8张图片

这个Jenkins自动化测试任务,在 【Android_Phone_Server】这台Jenkins节点服务器上进行编译的,而在这个错误发生之前,我确实在这台节点服务器上做了一些操作,但是确实没有动这台服务器的ssh方面的。而且在问题发生之后,用Xshell客户端确实可以ssh连接上。

我突然想起了下面这条道理:

几乎没有什么问题是重启解决不了的。

好吧,是在没辙了,我从Jenkins上断开这个Jenkins节点服务器,然后重新连接试一试。

2.4.2 重连Jenkins编译节点

重新断开节点服务器,然后重新连接
【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第9张图片

2.4.3 重新run自动化Jenkins任务

然后重新开始这个自动化Jenkins任务,尝试一下。

第318次编译,终于成功了!大功告成!
【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第10张图片

编译成功的日志
【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第11张图片

三、总结

应该是由于我在Jenkins节点服务器上做了某些我不记得的操作,导致Jenkins平台上的信息和Jenkins节点服务器上的信息不同步了,导致使用Jenkins来操作ssh失效。

最终通过重启Jenkins节点服务器的操作来同步信息,这样就可以正常操作ssh了。


作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:https://blog.csdn.net/qq446282412/article/details/83856439
如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。

【Jenkins学习 】解决Jenkins使用ssh链接出现错误:bash: =: command not found [SSH] exit-status: 127_第12张图片

你可能感兴趣的:(Jenkins)