我正在尋找一個庫,允許我創建讓遠程命令執行的3個線程執行每個命令需要13分鐘。你會建議什麼樣的ssh lib文件,它可以執行這樣的任務? (免費Maveric版本 - 失敗不願意支付2.4k $的完整庫,現在使用ssh2 ...)支持java的SSH庫很好的支持多線程!
回答
我從個人經驗知道,JSch正常工作,只要你創建一個單獨的SSH連接每個線程。還有sshj和Ganymed SSH-2,你可能想看看。
這裏的遠程命令執行與JSch一個簡單的例子:
JSch jsch = new JSch();
Session session = jsch.getSession(user, host);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect(timeout);
Channel channel = session.openChannel("exec");
ChannelExec channelExec = (ChannelExec) channel;
channelExec.setCommand(command);
channel.connect();
// read channel.getInputStream() here if you want to capture the output
channel.disconnect();
session.disconnect();
+1,SSH的性質自然不會「多線程」。這是一個命令流,流本身是連續的。 – gustafc 2011-04-05 07:50:06
我與Jsch唯一的問題是它沒有任何ducumentation(比ssh2 == GANYMED SSH-2長3倍) - >導致不能在沒有愚蠢的輸入流的情況下打SHELL插入我的意思是start.shell(); execute.command(字符串); execute.command(字符串); end.shell();但可能你解決了這個神祕的問題(我想我已經在你的一篇文章中看到了關於shell多重命令(在應用程序中沒有從鍵盤讀取)的東西) – user615927 2011-04-05 08:37:59
我用一個工作示例更新了答案,你只需要填寫變量。 – WhiteFang34 2011-04-05 08:55:01
- 1. 對Windows的SSH庫支持
- 2. 支持多線程的arraylist
- 3. Java:最好的jdbc支持?
- 4. 支持良好的Java ADSI包裝庫?
- 5. Libevent多線程支持
- 6. COM多線程支持
- 7. MonetDB多線程支持
- 8. Racket支持多線程嗎?
- 9. Webservice支持多線程?
- 10. waitall不支持sta線程上的多個句柄不支持
- 11. 支持庫不支持aar
- 12. Android不支持的線程
- 13. IPad,IPhone中的多線程支持
- 14. 新來的android - 支持支持多屏
- 15. 最好的在線裁判擁有良好的Java支持?
- 16. 您認爲哪些Eclipse支持很好?
- 17. .NET支持SSL的一個很好的XMPP庫是什麼?
- 18. 具有良好Javascript支持的多線程無頭瀏覽器
- 19. 不支持棄用的線程方法不支持
- 20. java-me是否支持線程?
- 21. Python的庫支持
- 22. Gwt和html5多線程/ WebGL支持
- 23. C++ HashMap中與多線程支持
- 24. DBCP - 它支持多線程嗎?
- 25. libubox是否支持多線程
- 26. Cocos2d是否支持多線程?
- 27. 爲什麼PHP不支持多線程?
- 28. 多線程支持Inline Asm(x86)
- 29. php/apache會支持多線程嗎?
- 30. Visual Studio 2008會支持多線程嗎?
爲什麼不使用任何SSH LIB用'Executor' /'ExecutorService'結合起來呢? – musiKk 2011-04-05 06:59:54
@musiKk,並非所有的SSH庫都是以線程安全的方式編寫的。如果通過他們的郵件列表,JSch顯然在今天出現了這個問題(除非已經改變)。 – 2011-04-05 07:08:29
@Vineet:對不起,也許我沒有充分檢查我的事實。唉,WhiteFang34似乎不同意。 ;) – musiKk 2011-04-05 07:42:03