我在host1
,我想shell脚本shell1.sh
在另一台主机host2
中执行另一个shell脚本shell2.sh
。需要ssh相同。对不起,我有点新本脚本来自shell脚本的SSH另一个shell脚本
所以:
host1$ sh shell1.sh ----ssh----> host2$ shell2.sh
我在host1
,我想shell脚本shell1.sh
在另一台主机host2
中执行另一个shell脚本shell2.sh
。需要ssh相同。对不起,我有点新本脚本来自shell脚本的SSH另一个shell脚本
所以:
host1$ sh shell1.sh ----ssh----> host2$ shell2.sh
在您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
命令。
你可以这样做:
local.sh:
#!/bin/bash
hostname
whoami
ifconfig
然后,用你的本地脚本,就可以远程运行:
ssh host < local.sh
的STDIN
壳远程主机将连接到与本地shell脚本。
哪台机器是'shell2.sh'文件? –