java应用程序远程登录linux并执行其命令

来源:互联网 发布:淘宝上怎么投诉快递 编辑:程序博客网 时间:2024/05/17 14:26

http://www.ganymed.ethz.ch/ssh2/在这个网址下载一个调用ssh和scp命令的jar包。
然后,就可以写程序了。将上面的jar包导入MyEclipse,下面是一个类的实例代码。

package hh;

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader;

import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.Session; import ch.ethz.ssh2.StreamGobbler;

public class Basic

{

public static void main(String[] args)

{

String hostname = "222.177.211.9";

String username = "boss";

String password = "qwer@1234";

try

{

/* Create a connection instance */

Connection conn = new Connection(hostname);

/* Now connect */

conn.connect();

/* Authenticate */

boolean isAuthenticated = conn.authenticateWithPassword(username, password);

if (isAuthenticated == false)

throw new IOException("Authentication failed.");

/* Create a session */

Session sess = conn.openSession();

//sess.execCommand("uname -a && date && uptime && who");

sess.execCommand("ps aux ");

System.out.println("Here is some information about the remote host:");

InputStream stdout = new StreamGobbler(sess.getStdout());

BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

while (true)

{

String line = br.readLine();

if (line == null)

break;

System.out.println(line);

}

/* Show exit status, if available (otherwise "null") */

System.out.println("ExitCode: " + sess.getExitStatus());

/* Close this session */

sess.close();

/* Close the connection */

conn.close();

}

catch (IOException e)

{

e.printStackTrace(System.err); System.exit(2);

}

}

}

在控制台我们将看到输出结果。

很简单,不过,理解其中的原理,要费一番的周折了,以后再给大家讲一些原理方面的东西。

原创粉丝点击