2012-10-19 137 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腳本。