2012-10-19 139 views
-1

我在host1,我想shell脚本shell1.sh在另一台主机host2中执行另一个shell脚本shell2.sh。需要ssh相同。对不起,我有点新本脚本来自shell脚本的SSH另一个shell脚本

所以:

host1$ sh shell1.sh ----ssh----> host2$ shell2.sh 
+0

哪台机器是'shell2.sh'文件? –

回答

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

如果命令被指定,则远程主机,而不是登录壳上执行。

在第二脚本,上shell2.sh的命令通过stdin,然后将它们转发到host2的壳,最后执行它们传递给ssh命令。

1

你可以这样做:

local.sh

#!/bin/bash 
hostname 
whoami 
ifconfig 

然后,用你的本地脚本,就可以远程运行:

ssh host < local.sh 

STDIN壳远程主机将连接到与本地shell脚本。