使用ganymed工具调用ssh2
需要引入ganymed-ssh2-build210.jar包。
其实很简单。所以直接贴代码,代码说话。
package com.eshore.framework.util; import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List; import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import ch.ethz.ssh2.log.Logger;
/**
* shell脚本调用类
* @author clear
*
*/
public class SshBasic{ //连接,登陆
public Connection login(String hostname,int port,String username,String password){ //获取连接
Connection conn = new Connection(hostname, port);
try {
//连接
conn.connect();
//输入账号密码登陆
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
//登陆失败,返回错误
if(isAuthenticated == false){
throw new IOException("isAuthentication failed.");
}
} catch (IOException e) { e.printStackTrace();
} return conn;
}
//获取Session
public Session getSession(Connection conn){
Session sess = null;
try {
sess = conn.openSession();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sess;
}
//获取控制台打印信息
public String printCmd(String path,Connection conn,Session sess, String date, String city){
String txt = "";
try {
sess.execCommand("chmod 755 "+path+" && "+path+" "+date+" "+city);
//打印信息
InputStream stdout = new StreamGobbler(sess.getStdout());
//打印错误
InputStream stderr = new StreamGobbler(sess.getStderr());
BufferedReader brout = new BufferedReader(new InputStreamReader(stdout,"UTF-8"));
BufferedReader brerr = new BufferedReader(new InputStreamReader(stderr,"UTF-8"));
while(true){
String line = brout.readLine();
if(line==null){
break;
}
txt += line+"<br/>";
System.out.println(line);
}
while(true){
String line = brerr.readLine();
if(line==null){
break;
}
txt += line+"<br/>";
System.out.println(line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return txt;
} public static void main(String[] args) { SshBasic m = new SshBasic();
//连接并登陆
Connection conn = m.login("132.122.1.51", 22, "srglweb", "srglweb123");
//获取Session
Session sess = m.getSession(conn);
//获取控制台信息
String cmd = m.printCmd("shelltest/two.sh", conn,sess,"20140905","200");
System.out.println("cmd:"+cmd);
System.out.println("--->"+sess);
//判断会话是否成功
int result = sess.getExitStatus();//如果成功返回0
System.out.println("result:"+result);
sess.close();
conn.close();
} }
使用ganymed工具调用ssh2的更多相关文章
- So easy Webservice 3.使用HttpClient工具调用Webservice接口
首先,看看webservice服务调用演示: a) 登录http://www.webxml.com.cn b) 单击手机查询服务 c) 选择要调用的方法 例如: getMobileCodeInfo 输 ...
- arcgis js 之 渔网工具(调用地图服务)
arcgis js 之 渔网工具(调用地图服务) 原理: 简历不同级别的网渔网图层,设置显示比例尺.然后发布服务,使用MapImageLayer接收. 过程: 1.在arcmap中用创建渔网工具将不同 ...
- C#开发COM组件供其他开发环境或工具调用介绍(转)
由于工作原因涉及到这一块的开发,由于之前并未接触过,所以本篇文章也是在参考了各种资料后,自己实现并通过通过测试之后所整理的备忘录以及一些个人观点. 希望对刚接触这类型开发的朋友有所帮助,若有不足之处还 ...
- iOS使用WSDL2ObjC工具调用Webservice接口
1. 下载 WSDL2ObjC.app https://code.google.com/archive/p/wsdl2objc/downloads 2:下载WSDL文件 2.1一般情况下, 你会得到这 ...
- 【Win32 API】远程工具调用
前言 有时候,影城报障需要远程过去重现和处理,如果电脑没有安装远程工具的话,还需要营业员下载和安装,然后将账号密码发送过来,这样一来一回操作繁琐也浪费时间,所以我们可以设想一下这种场景,售票员点击在p ...
- spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果
一.项目介绍(本项目用的编程语言是jdk8,项目源码:https://github.com/zhzhair/spring-boot-druid.git) 1.引入pom依赖: <dependen ...
- Ganymed SSH-2 for Java
Ganymed SSH-2 for Java是一个纯Java实现的SHH2库,官网为http://www.ganymed.ethz.ch/ssh2/,最新的更新时间为2006年10月,在用之前,请仔细 ...
- c# 调用ArcEngine的GP工具
转自原文c# 调用ArcEngine的GP工具,AE调用GP工具 IAoInitialize m_AoInitialize = new AoInitializeClass(); esriLicense ...
- AE调用GP工具(创建缓冲区和相交为例)
引用 Geoprocessing是ArcGIS提供的一个非常实用的工具,借由Geoprocessing工具可以方便的调用ArcToolBox中提供的各类工具,本文在ArcEngine9.2平台环境下总 ...
随机推荐
- mysql 位运算
& 与运算 | 或运算 ^ 异或运算 或者 你也可以将 与运算理解为 + 法 例如 1|2 = 3 (1+2 = 3)1|2|4 = 7 (1+2+4 = 7) 将 异或运算理解为 - ...
- Extjs,实现树形结构的总结
工作总结,用extjs.mybatis.springMVC实现树形显示班级 前台extjs实现树形代码如下: xtype : 'combotree', fieldLabel : '部门名称', nam ...
- 浏览器中F5和CTRL F5的行为区别
前言 在印象中,浏览器中的F5和刷新按钮是一样的效果,都是对当前页面进行刷新:Ctrl-F5的行为也是刷新页面,但是会清除浏览器缓存,这在前端调试时候会常用.二者真正的区别是什么呢?在stackove ...
- Spring Boot 属性配置&自定义属性配置
在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring boot中的模块化配置,在pom.xml中依赖的每个Starter都有默认配置,而这些默认配 ...
- AJAX的中文乱码问题
/***********本人原创,欢迎转载,转载请保留本人信息*************/作者:wallimn电邮:wallimn@sohu.com博客:http://blog.csdn.net/wa ...
- JavaScript处理JSON
一.什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript(Standa ...
- 【BZOJ】1650: [Usaco2006 Dec]River Hopscotch 跳石子(二分+贪心)
http://www.lydsy.com/JudgeOnline/problem.php?id=1650 看到数据和最小最大时一眼就是二分... 但是仔细想想好像判断时不能贪心? 然后看题解还真是贪心 ...
- Openwrt 移植hello world
下载openwrt项目源代码.參考http://blog.csdn.net/u011641885/article/details/46348267 编译交叉工具链:进入工作文件夹,运行make men ...
- mongoose 数据库操作3
Model.find(query, fields, options, callback) Model.find({ 'some.value': 5 }, function (err, docs) { ...
- 用iis虚拟目录和windows共享目录上传文件到远程
现在有这样一个需求,有主机A和主机B.主机A上发布了一个网站,现在往主机A上上传文件默认是存在主机A上的, 如何把文件传到主机B上呢? 第一步在主机A和主机B上都创建同一个帐号admin,密码admi ...