Java如何連線Linux伺服器並實現命令
阿新 • • 發佈:2021-01-24
連線Linux伺服器並實現命令
1.首先準備一個Linux上的一個指令碼,用於連線上後進行訪問
mkdir /usr/local/tmp/test/shell //在Linux上建立一個存放臨時檔案的位置
vim testForJava //建立一個文字 裡邊寫入指令碼
echo "如果能看到這條訊息說明你成功了" //這就是寫入的指令碼
2.然後到Java中建立一個maven工程
先引入依賴檔案
<dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifactId> <version>build210</version> </dependency>
這個依賴是用於連線linux的
然後編寫程式碼去訪問對應路徑的指令碼檔案
public class TestUseSSh {
private static String ip="你的伺服器ip地址";
private static int port = 22;
private static String user = "你伺服器的使用者名稱";
private static String password = "你伺服器的密碼";
public static void main(String[ ] args) {
try {
//先建立一個連線,傳入IP地址和埠
Connection conn = new Connection(ip,port);
conn.connect();
//然後傳入使用者名稱密碼
boolean b = conn.authenticateWithPassword(user, password);
if(b==false){
throw new IOException("連線失敗!" );
}
//需要連線 首先先建立一個通話
Session session = conn.openSession();
//然後輸入需要執行的命令 這裡的命令是去觸發我們寫的指令碼的
session.execCommand("sh /usr/local/tmp/test/shell/testForJava");
//然後將返回的結果轉化為輸入流物件
InputStream stdout = new StreamGobbler(session.getStdout());
//然後將流物件讀取出來
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true){
String line = br.readLine();
if(line == null){
break;
}
//列印到控制檯
System.out.println(line);
}
//關閉會話和連線
session.close();
conn.close();
} catch (IOException e) {
e.printStackTrace();
//退出
System.exit(2);
}
}
}