远程获取linux下的信息
需要一个jar包,
ch.ethz.ssh2
下载地址:http://www.ganymed.ethz.ch/ssh2/
以下是示例代码:
package com.company.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import com.zxtc.pias.common.config.ProUtil;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
public class ConnectSSH {
/**
*
* @author chenxiao.huo
* @date2017年4月19日
* @param str 输入的命令
* @param isHtml 是否要返回html
* @return
*/
public static String connectSSH(String str,boolean isHtml){
String hostname = ProUtil.readParam("STORAGE_HOST");
String username = ProUtil.readParam("STORAGE_USERNAME");
String password = ProUtil.readParam("STORAGE_PWD");
String lineStr ="";
try
{
/* Create a connection instance */
Connection conn = new Connection(hostname);
/* Now connect */
conn.connect();
/* Authenticate.
* If you get an IOException saying something like
* "Authentication method password not supported by the server at this stage."
* then please check the FAQ.
*/
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (isAuthenticated == false)
throw new IOException("Authentication failed.");
//开启一个会话;
Session sess = conn.openSession();
//在这里输入命令;
sess.execCommand(str);
System.out.println("Here is some information about the remote host:");
/*
* This basic example does not handle stderr, which is sometimes dangerous
* (please read the FAQ).
*/
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true)
{
String line =br.readLine();
if (line == null)break;
if(isHtml){
lineStr += line +"<br/>";
}else{
lineStr += line;
}
System.out.println(line);
}
/* Show exit status, if available (otherwise "null") */
System.out.println("ExitCode: " + sess.getExitStatus());
sess.close();
conn.close();
}
catch (IOException e)
{
e.printStackTrace(System.err);
System.exit(2);
}
return lineStr;
}
public static void main(String[] args) {
String strl = connectSSH("df -h", false);
}
}
maven 的dependency:
<!--SSH2 -->
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>build210</version>
</dependency>