在Jenkins中,我创建了一个运行许多shell脚本命令的作业:
command1
command2
...etc
command1
是一个ssh命令,用于调用另一台服务器计算机上的shell脚本文件。我必须等到它完成后,command2
应该来了。
那么,如何在Jenkins作业中启动下一个命令(command1
)时,如何确保command2
启动的另一台机器上的脚本文件已完成其作业?
或者,或者,如何在其他计算机上的shell脚本(由command2
启动)完成后才能确保command1
不会启动?
答案 0 :(得分:0)
您可以查看" How to send many commands to shell and wait for the command behind ends"为了链接命令并等待它们完成。
当您通过ssh会话执行命令时,可能必须将该命令包装在能够循环/等待命令完成的脚本中。
请参阅" How can I make ssh wait until the command exits?"中的示例
或者(一个更简单的包装纸):How do I know when a command run over ssh has finished?
#/bin/bash
$@
echo "==== Command Output Finished ===="
在I / O例程中查找字符串
==== Command Output Finished ====
,以确定命令输出之间的边界。 或者您可以尝试在自己的Jenkins shell构建步骤中隔离这些命令 (不是一个不同的工作,只是同一工作中的不同构建步骤)