首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在执行远程命令之前Jenkins SSH shell将关闭

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

Stack Overflow用户
提问于 2015-12-03 10:07:54
回答 2查看 4.4K关注 0票数 5

我有一个Jenkins作业,在"Execute“下面有以下命令:

代码语言:javascript
复制
ssh jenkins@172.31.12.58
pwd

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

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

代码语言:javascript
复制
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命令之后的后续命令不在shell中运行,而是在本地运行吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-03 19:24:58

如果不以交互方式运行,SSH不会创建交互式会话(因此您看到“伪终端”错误消息),因此它与在交互终端中执行一系列命令不完全一样。

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

代码语言:javascript
复制
ssh jenkins@YOUR_IP 'uname -a'

远程命令必须正确引用为ssh命令的单个参数。或者对一个简单的多行脚本使用bash这里-doc语法

代码语言:javascript
复制
ssh jenkins@YOUR_IP <<EOF
pwd
uname -a
EOF
票数 8
EN

Stack Overflow用户

发布于 2015-12-03 11:21:38

我认为您可以使用在SSH插件上发布在带有SSH的从站上执行命令:

如果源文件字段是强制性的,也许您可以传输一个虚拟文件。

更新:另一个解决方案是使用SSH插件。也许这是一个比其他插件更好的解决方案:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34063044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档