关于bash:使用shell脚本在远程服务器上执行命令

execute commands on remote server using shell script

本问题已经有最佳答案,请猛点这里访问。

我在生成服务器上有一个部署脚本。每次需要生成构建时,我都需要使用ssh登录到服务器,然后触发部署脚本。我设法生成了公钥/私钥,这样我就不需要输入密码就可以登录到构建服务器。但我仍然需要登录并运行部署脚本。有没有一种方法可以自动登录,在构建服务器上执行部署脚本,然后在一个本地脚本中退出。如何做到这一点


您可以使用管道(假设您使用的是*nix操作系统):

1
echo"your --command --here" | ssh user@host

只需在一行中执行ssh 。如果你可以的话使用您不必键入密码的密钥登录。例子:

1
2
$ ssh localhost 'echo hi'
hi

是同步运行的。这意味着ssh不会完成,直到远程服务器上的运行完成。看看你自己:

1
$ ssh localhost 'sleep 10'

此命令将等待10秒,直到完成后才能键入新命令。


通常只是

1
ssh buildserver /path/to/build.sh

不过,您可能需要调整选项。