-1

我在里面host1,我想用 shell脚本在另一台主机shell1.sh上执行另一个 shell 脚本。需要 ssh 相同。抱歉,我对这个脚本不太熟悉shell2.shhost2

所以:

host1$ sh shell1.sh ----ssh---->  host2$ shell2.sh
4

2 回答 2

2

在你的shell1.sh

#!/bin/sh

ssh host2 '/bin/sh /path/to/shell2.sh'

并且,如果shell2.sh文件不在host2

#!/bin/sh

ssh host2 < /path/to/shell2.sh

在第一种选择中,您将传递给ssh第二个参数,它将其解释为要在远程计算机上执行的命令。

来自man ssh

如果指定了command,它将在远程主机而不是登录 shell 上执行。

在第二个脚本中,命令通过 stdinshell2.sh传递给ssh命令,然后将它们转发到host2的 shell,最后执行它们。

于 2012-10-19T19:06:41.137 回答
1

你可以这样做:

本地.sh

#!/bin/bash
hostname
whoami
ifconfig

然后,使用本地脚本,您可以远程运行它:

ssh host < local.sh

远程主机的STDINshell 将本地 shell 脚本连接。

于 2012-10-19T19:27:03.343 回答