我在构建服务器上有一个部署脚本。每次需要生成构建时,我需要使用ssh
登录到服务器,然后触发部署脚本。
我已经生成了公钥/私钥,以便无需输入密码即可登录到构建服务器。但是,仍然需要登录并运行部署脚本。
是否有一种方法可以在本地脚本中自动化登录、执行构建服务器上的部署脚本,然后退出?如何实现这一点?
echo "your --command --here" | ssh user@host
ssh buildserver /path/to/build.sh
你可能需要微调选项。
只需在一行中执行ssh <HOST> <COMMAND>
。如果您已经可以使用密钥登录,则无需输入密码。例如:
$ ssh localhost 'echo hi'
hi
这个<COMMAND>
是以同步方式运行的。这意味着ssh
在远程服务器上运行<COMMAND>
之前不会完成。看看自己:
$ ssh localhost 'sleep 10'
这个命令会等待10秒钟,直到它完成之前,您将无法输入新的命令。
&
,那么所有操作都是同步的。 - ceving&
即可使其成为异步。 - Arkadiusz Drabczykssh
退出,或者 ssh
本身可以在本地机器上后台运行。 - chepner
ssh
调用,并交付代码或远程文件以在远程计算机上执行。这是有充分的文档支持的,你可以在互联网上找到大量的例子。 - arkascha