我有一个Jenkins作业,在"Execute“下面有以下命令:
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命令之后的后续命令不在shell中运行,而是在本地运行吗?
发布于 2015-12-03 19:24:58
如果不以交互方式运行,SSH不会创建交互式会话(因此您看到“伪终端”错误消息),因此它与在交互终端中执行一系列命令不完全一样。
若要通过SSH会话运行特定命令,请使用:
ssh jenkins@YOUR_IP 'uname -a'远程命令必须正确引用为ssh命令的单个参数。或者对一个简单的多行脚本使用bash这里-doc语法:
ssh jenkins@YOUR_IP <<EOF
pwd
uname -a
EOFhttps://stackoverflow.com/questions/34063044
复制相似问题