没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar)
2008-11-11 19:49:28| 分类: Ssh |字号 订阅
该工具Jar包可在:http://www.ganymed.ethz.ch/ssh2/下载
ganymed-ssh2简介:
Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包。在使用它的过程中非常容易,只需要指定合法的用户名口令,
或者授权认证文件,就可以创建到远程Linux主机的连接,在建立起来的会话中调用该Linux主机上的脚本文件,执行相关操作。
使用方法:
将 ganymed-ssh2-build210.jar 加入到项目的lib中。
简单示例:
假定我在192.168.0.114的Linux系统的/home/lldu目录下放了一个文件夹test,test文件夹对应测试Java类的包名test,我们在该机器上运用javac ./test/Main.java编译后,再通过调用下面的代码完成远程调用:
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.ConnectionInfo;
import ch.ethz.ssh2.Session;
/**
*
* @author lldu
*/
public class Main {
public static void main(String[] args) {
try {
Connection con = new Connection("192.168.0.114");
ConnectionInfo info = con.connect();
2008-11-11 19:49:28| 分类: Ssh |字号 订阅
该工具Jar包可在:http://www.ganymed.ethz.ch/ssh2/下载
ganymed-ssh2简介:
Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包。在使用它的过程中非常容易,只需要指定合法的用户名口令,
或者授权认证文件,就可以创建到远程Linux主机的连接,在建立起来的会话中调用该Linux主机上的脚本文件,执行相关操作。
使用方法:
将 ganymed-ssh2-build210.jar 加入到项目的lib中。
简单示例:
假定我在192.168.0.114的Linux系统的/home/lldu目录下放了一个文件夹test,test文件夹对应测试Java类的包名test,我们在该机器上运用javac ./test/Main.java编译后,再通过调用下面的代码完成远程调用:
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.ConnectionInfo;
import ch.ethz.ssh2.Session;
/**
*
* @author lldu
*/
public class Main {
public static void main(String[] args) {
try {
Connection con = new Connection("192.168.0.114");
ConnectionInfo info = con.connect();
boolean result = con.authenticateWithPassword("lldu", "123456");
Session session = con.openSession();
session.execCommand("java test.Main");
} catch (Exception ex) {
System.out.println(ex.getLocalizedMessage());
}
}
}
总结使用步骤:
1.首先构造一个连接器,传入一个需要登陆的ip地址
Connection conn = new Connection(ipAddr);
conn.connect(); // 连接
2.模拟登陆目的服务器 传入用户名和密码 ,
boolean isAuthenticated = conn.authenticateWithPassword(username, password);它会返回一个布尔值,true 代表成功登陆目的服务器,否则登陆失败
3.打开一个session,有点象Hibernate的session ,执行你需要的linux 脚本命令 。
Session sess = conn.openSession();
sess.execCommand("last");
4.接收目标服务器上的控制台返回结果,读取br中的内容
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
5.得到脚本运行成功与否的标志 :0-成功 非0-失败
System.out.println("ExitCode: " + sess.getExitStatus());
Session session = con.openSession();
session.execCommand("java test.Main");
} catch (Exception ex) {
System.out.println(ex.getLocalizedMessage());
}
}
}
总结使用步骤:
1.首先构造一个连接器,传入一个需要登陆的ip地址
Connection conn = new Connection(ipAddr);
conn.connect(); // 连接
2.模拟登陆目的服务器 传入用户名和密码 ,
boolean isAuthenticated = conn.authenticateWithPassword(username, password);它会返回一个布尔值,true 代表成功登陆目的服务器,否则登陆失败
3.打开一个session,有点象Hibernate的session ,执行你需要的linux 脚本命令 。
Session sess = conn.openSession();
sess.execCommand("last");
4.接收目标服务器上的控制台返回结果,读取br中的内容
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
5.得到脚本运行成功与否的标志 :0-成功 非0-失败
System.out.println("ExitCode: " + sess.getExitStatus());
剩余5页未读,继续阅读
kingkingleon
- 粉丝: 13
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页