2016-07-27 161 views
0

我想運行一個shell腳本在遠程linux機器上執行一個二進制文件。二進制文件和shell腳本都在我的本地窗口機器上。有什麼辦法通過我可以通過命令行工具直接從窗口運行二進制到遠程機器,如PLINK從本地窗口運行shell腳本到遠程linux服務器?

我不想把二進制文件和腳本放到我希望它們運行的​​所有遠程Linux機器上,而是我想運行實際調用二進制文件的shell腳本並執行期望的功能直接通過我的本地機器。

回答

0

您可以只用通過ssh管道進行遠程運行shell腳本:(或任何窗戶/砰砰噹量)

cat my_script.sh | ssh -T my_server 

但是,你不能運行的二進制遠程通過管道,該文件將不得不存在於遠程服務器上。

scp my_binary my_server:/tmp 
cat my_script.sh | ssh -T my_server 

然後就是有你的腳本運行:您可以從您的Windows機器上的文件推到一個已知位置的遠程服務器上,然後編輯腳本,以期望在文件中的位置存在這樣做二進制:

/tmp/my_binary 

或者你可以編寫腳本,以便它拉從一箇中心位置在那裏你收留了它的二進制文件:

wget -O /tmp/my_binary http://my_fileserver/my_binary 
/tmp/my_binary 

注意,如果SHEL l腳本除了調用二進制文件外不會執行任何其他操作,那麼您不需要它。你可以直接通過ssh發送命令:

ssh -T my_server "cd /tmp && wget http://my_fileserver/my_binary && ./my_binary" 
+0

那麼每次我的腳本運行時,它會問的登錄憑證呢? –

+0

如果您不希望每次都提示,則可以使用沒有密碼的SSH密鑰。 –

+0

好吧是有道理..謝謝你的幫助。 –

0

在執行之前,您必須將二進制文件複製到遠程Linux機器中。但是,在運行該程序之前,您可以在使用sftp將二進制程序傳輸到臨時目錄下的Windows計算機上運行腳本,因此不需要手動設置。

相關問題