我在里面host1
,我想用 shell脚本在另一台主机shell1.sh
上执行另一个 shell 脚本。需要 ssh 相同。抱歉,我对这个脚本不太熟悉shell2.sh
host2
所以:
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
:
如果指定了command,它将在远程主机而不是登录 shell 上执行。
在第二个脚本中,命令通过 stdinshell2.sh
传递给ssh
命令,然后将它们转发到host2
的 shell,最后执行它们。
你可以这样做:
本地.sh:
#!/bin/bash
hostname
whoami
ifconfig
然后,使用本地脚本,您可以远程运行它:
ssh host < local.sh
远程主机的STDIN
shell 将与本地 shell 脚本连接。