我有兩個安全的Linux服務器。在一臺機器上我的Java應用程序正在運行。我需要從第一臺Java機器上的第二臺機器上運行Linux命令。我該怎麼做?如何在使用Java的遠程計算機上執行Linux命令?
回答
本質上,您需要在Java應用程序中打開與其他服務器的ssh連接。 OpenSSH網站有一些有用的信息庫,它們會給你在Java中的ssh支持。
它看起來像Ganymed SSH-2 for Java是那裏最好的選擇,但我沒有使用它們中的任何一個,所以你需要看看你需要什麼。
一旦你有了一個ssh連接,你將能夠運行命令,就像你使用任何其他ssh客戶端登錄一樣。
你的OpenSSH鏈接不工作 – 2017-11-09 04:13:12
檢查套接字可能會更容易,因爲您可以在不需要設置任何外部庫的情況下執行您要做的工作。
在主機上,你要設置一個ServerSocket對象,並從客戶機上打開一個Socket。我沒有時間鍵入整個示例,但請檢查此方法,以便在Java中通過Internet建立服務器 - 主機連接的簡單方法。
http://zerioh.tripod.com/ressources/sockets.html
一旦你得到的設置,您可以從計算機上的ServerSocket應該執行命令,並做周圍
String command = "get this from the ObjectInputStream attached to your ServerSocket";
Runtime run = Runtime.getRuntime();
Process pr = run.exec(command) ;
pr.waitFor() ;
BufferedReader buffer = new BufferedReader(new InputStreamReader(pr.getInputStream())) ;
String line;
while ((line = buffer.readLine()) != null)
{
System.out.println(line);
}
該線的東西要輸入你的shell命令棘手的部分是與套接字建立一個可靠的主機 - 客戶端連接,但如果你正在做一些簡單的事情,你應該對上面鏈接的例子很好。
你真的想重新發明輪子並重做所有的東西來保護連接,當你可以使用ssh嗎? – lc2817
我誤解了這個問題,作爲對Java實現的請求。感謝您指出。 –
你可以通過多種方式做到這一點;然而,幾乎每種方式都涉及網絡連接。
您可以編寫客戶端 - 服務器對的Java程序,並將客戶端連接到服務器並提交命令。
您可以編寫Java來使用現有服務器,如sshd,telnetd,rsh,ftpd或允許在遠程端執行命令的預先存在的其他服務器。
你可以利用它處理建立客戶端 - 服務器對,例如RMI,SOAP,CORBA的某些方面的架構等
在Java支持噸聯網選項的結束,讓你有更多的途徑這樣做比你想象的要多。只要確保不要在Web瀏覽器中執行此操作,因爲這些JVM已啓動沙盒,並且無法在沒有任何幫助的情況下離開沙盒。
- 1. 如何使用pysphere執行遠程計算機上的命令
- 2. 使用Java在遠程計算機上運行命令行
- 3. 如何在遠程計算機上執行命令?
- 4. 如何使用perl在遠程計算機上運行命令?
- 5. 如何使用Perl在遠程計算機上運行命令?
- 6. 遠程計算機的linux tar命令
- 7. power-shell命令行在遠程計算機上執行cmd
- 8. 在遠程計算機上執行命令
- 9. 期望ssh腳本(在遠程計算機上執行命令)
- 10. 使用本機Mac應用程序在遠程Linux計算機上執行SSH命令。 (Obj-C)
- 11. 從UNIX/LINUX機器在Windows計算機上執行命令
- 12. 使用ssh在遠程計算機上運行命令
- 13. Java JSch更改遠程計算機上的用戶並執行命令
- 14. linux遠程執行命令
- 15. 如何在遠程Linux機器上使用C執行Putty命令#
- 16. 如何使用shell腳本在遠程機器上執行linux命令
- 17. 執行命令LS從Windows計算機到Linux計算機
- 18. Rails應用程序在遠程計算機上運行命令
- 19. gcloud計算執行遠程命令
- 20. 在遠程計算機上使用wmi python執行系統命令
- 21. 在linux上,使用NFS,是遠程執行的open()命令嗎?
- 22. 如何在沒有ssh的遠程計算機(linux)上執行進程?
- 23. 在遠程計算機的命令提示符下執行命令
- 24. 在遠程計算機上執行shell腳本中的命令並在本地計算機上獲取輸出
- 25. linux命令查找遠程Windows計算機上的磁盤使用情況
- 26. 使用Sysinternals在遠程計算機上執行進程PsExec
- 27. 如何在遠程計算機上執行Perl程序?
- 28. Powershell使用遠程計算機上的命令行參數執行遠程exe文件
- 29. 運行命令使用遠程計算機
- 30. 如何在遠程計算機上執行vbs文件
套接字是首先想到的。 http://download.oracle。com/javase/tutorial/networking/sockets/ – Adam