2012-11-24 35 views
2

我有一個bash腳本來恢復我的數據庫。數據庫位於遠程Linux服務器上,我的Java代碼位於Windows上。我如何運行腳本?從Java代碼的Windows機器運行bash腳本

+0

看到這個:http://stackoverflow.com/questions/2514439/how-to-run- ssh-commands-on-remote-system-through-java-program – mindas

回答

1

你是什麼意思恢復?如果你只想加載你的數據庫轉儲可能創建備份數據庫,然後只是複製行到目標數據庫。如果你真的需要運行這個腳本,最簡單的方法是通過ssh連接到遠程服務器並啓動該腳本。使用Putty或某些ssh java lib進行連接併發送命令來運行。關於膩子更多信息here

+0

我用膩子做連接,但我不知道如何發送命令從Java運行。 – user506246

+0

使用'exec'從你的java代碼運行putty。 [Here](http://stackoverflow.com/a/11332291/1387612)是關於它的更多信息。由於平臺依賴性,這是不好的解決方案。所以更好的想法將使用一些普通的SSH Java庫可能[JSch](http://www.jcraft.com/jsch/examples/Exec.java.html) – janisz

+0

問題解決了..我用JSch庫。 Tnx – user506246

1

嘗試這樣: -

Process p = Runtime.exec("ssh myhost"); 
PrintStream out = new PrintStream(p.getOutputStream()); 
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()); 

out.println("ls -l /home/me"); 
while (in.ready()) { 
String s = in.readLine(); 
System.out.println(s); 
} 
out.println("exit"); 

p.waitFor(); 

從源頭thread

+0

我修改了腳本,併成功登錄到遠程機器。但仍然不能執行腳本,既不是linux命令。 – user506246