当前位置:  开发笔记 > 编程语言 > 正文

Jenkins SSH shell在执行远程命令之前关闭

如何解决《JenkinsSSHshell在执行远程命令之前关闭》经验,为你挑选了1个好方法。

我有一个Jenkins作业,在"执行shell"下有以下命令:

ssh jenkins@172.31.12.58
pwd

我希望Jenkins服务器通过SSH连接到远程服务器,然后在远程服务器上运行命令.

相反,Jenkins连接到远程服务器,立即断开连接,然后pwd在输出中看到本地运行命令:

Started by user Johanan Lieberman
Building in workspace /var/lib/jenkins/jobs/Test Github build/workspace
[workspace] $ /bin/sh -xe /tmp/hudson266272646442487328.sh
+ ssh jenkins@172.31.12.58
Pseudo-terminal will not be allocated because stdin is not a terminal.
+ pwd
/var/lib/jenkins/jobs/Test Github build/workspace
Finished: SUCCESS

编辑:任何想法为什么命令之后的后续命令ssh不在SSH shell中运行,而是在本地运行?



1> Dave Bacher..:

如果您没有以交互方式运行,SSH不会创建交互式会话(因此您看到的"伪终端"错误消息),因此它与在交互式终端中执行一系列命令并不完全相同.

要通过SSH会话运行特定命令,请使用:

ssh jenkins@YOUR_IP 'uname -a'

必须正确引用remote命令作为ssh命令的单个参数.或者使用bash here-doc语法来创建一个简单的多行脚本:

ssh jenkins@YOUR_IP <

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有