0
我試圖在使用JAVA API的遠程服務器上運行shell腳本。遠程服務器有身份驗證,所以我必須通過我的用戶名和密碼登錄到它。 我沒有這些機器(無論是來源還是目的地)的權利來安裝'sshpass',以防您打算提供該解決方案。使用JAVA API在遠程服務器上執行shell腳本
這樣做的最好方法是什麼?
我試圖在使用JAVA API的遠程服務器上運行shell腳本。遠程服務器有身份驗證,所以我必須通過我的用戶名和密碼登錄到它。 我沒有這些機器(無論是來源還是目的地)的權利來安裝'sshpass',以防您打算提供該解決方案。使用JAVA API在遠程服務器上執行shell腳本
這樣做的最好方法是什麼?
JSch是一個優秀的庫,用於支持通過ssh進行遠程連接,包括執行遠程命令(或shell腳本)。
有很多關於如何在JSch Examples, 處使用JSch的例子,但要特別注意Exec。
在它的基礎上,什麼人做的是:
Session
Session
內Channel
在輸入時,OP還發布了一個額外的問題和示例。 http://www.codesandscripts.com/2014/10/java-program-to-execute-shell-scripts-on-remote-server.html的例子看起來也不錯。
至於推腳本到服務器,開始通過使用scp
或sftp
(我們找到更可靠後者)移動文件到遠程機器,一定要送chmod u+x
的exec
,然後調用腳本。
您是否僅限於標準JDK? – KevinO
是的,我正在使用jdk 8. – david419
這是通過ssh根據您對sshpass的評論嗎?恕我直言,在遠程計算機上調用腳本的最佳方式是使用[JSch](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved= 0ahUKEwj1-daRuvXLAhVBVGMKHRz-AW8QFggcMAA&URL = HTTP%3A%2F%2Fwww.jcraft.com%2Fjsch%2F&USG = AFQjCNFEETFDy_PvFq6a3L_sqnj_u5o-ZQ&SIG2 = vnk4MnTC284FH-yj7_ddZQ&BVM = bv.118443451,d.cGc)。我們始終在工作中使用JSch。如果從頭開始編寫,有很多事情要考慮。那麼,您是否僅限於標準JDK中的類,還是可以使用外部庫? – KevinO