2012-02-14 18 views
0

我正在編寫一個java程序來幫助自動執行幾個任務。在其中一個任務中,我需要將bash腳本推送到遠程Linux系統(java程序將在Windows機器上運行),然後運行腳本。有沒有人知道如何去做這件事?將腳本推送到遠程系統然後運行它

我查看了Jsch,但文檔很糟糕,而且我很難實現我想要做的事情。任何其他想法或具體用途?

編輯:我只是想用java來運行批處理,可以做到這一點。回答是,但也許可能。現在看看這個。

+1

可能的重複[如何在遠程計算機上通過ssh運行應用程序?](http://stackoverflow.com/questions/6527406/how-can-i-run-an-application-on-a- remote-machine-by-ssh)和[帶jsch的scp文件](http://stackoverflow.com/questions/7991794/scp-file-with-jsch-gives-unexpected-filename) - 你會注意到有很多*這裏的信息已經在stackoverflow上了。 – 2012-02-14 20:35:37

+0

是的,謝謝。我的googlefoo顯然很弱。我已經分別搜索了這些要求,但從未返回這些結果,並且在提出這個問題時,相關問題也不包括這些要求。我將使用這些鏈接,看看我能不能湊齊一些東西。謝謝。 – 2012-02-14 20:43:50

+0

如果這是一個持續的需求,你可能想看看像Salt或Puppet這樣的系統管理工具(可能有其他的)。 – 2012-02-14 21:58:11

回答

0

我確實創建了一個Javadoc for JSch,這應該可以幫助您做到這一點。對於複製,你應該使用ChannelSftp,然後使用ChannelExec來執行腳本。或者,如果您確實不需要將腳本放在服務器上,根據腳本語言,您可能可以將整個腳本提供爲ChannelExec的「命令」(其命令在用戶的默認外殼,並沒有固有的大小限制,我認爲)。

如果您使用的是Perl或類似的解釋器,您可以將腳本作爲標準輸入(即通道的輸入流)傳遞給解釋器命令,該解釋器命令應該允許執行它「實時」。

相關問題