我在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'文件? –