需要引入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的更多相关文章

  1. So easy Webservice 3.使用HttpClient工具调用Webservice接口

    首先,看看webservice服务调用演示: a) 登录http://www.webxml.com.cn b) 单击手机查询服务 c) 选择要调用的方法 例如: getMobileCodeInfo 输 ...

  2. arcgis js 之 渔网工具(调用地图服务)

    arcgis js 之 渔网工具(调用地图服务) 原理: 简历不同级别的网渔网图层,设置显示比例尺.然后发布服务,使用MapImageLayer接收. 过程: 1.在arcmap中用创建渔网工具将不同 ...

  3. C#开发COM组件供其他开发环境或工具调用介绍(转)

    由于工作原因涉及到这一块的开发,由于之前并未接触过,所以本篇文章也是在参考了各种资料后,自己实现并通过通过测试之后所整理的备忘录以及一些个人观点. 希望对刚接触这类型开发的朋友有所帮助,若有不足之处还 ...

  4. iOS使用WSDL2ObjC工具调用Webservice接口

    1. 下载 WSDL2ObjC.app https://code.google.com/archive/p/wsdl2objc/downloads 2:下载WSDL文件 2.1一般情况下, 你会得到这 ...

  5. 【Win32 API】远程工具调用

    前言 有时候,影城报障需要远程过去重现和处理,如果电脑没有安装远程工具的话,还需要营业员下载和安装,然后将账号密码发送过来,这样一来一回操作繁琐也浪费时间,所以我们可以设想一下这种场景,售票员点击在p ...

  6. spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果

    一.项目介绍(本项目用的编程语言是jdk8,项目源码:https://github.com/zhzhair/spring-boot-druid.git) 1.引入pom依赖: <dependen ...

  7. Ganymed SSH-2 for Java

    Ganymed SSH-2 for Java是一个纯Java实现的SHH2库,官网为http://www.ganymed.ethz.ch/ssh2/,最新的更新时间为2006年10月,在用之前,请仔细 ...

  8. c# 调用ArcEngine的GP工具

    转自原文c# 调用ArcEngine的GP工具,AE调用GP工具 IAoInitialize m_AoInitialize = new AoInitializeClass(); esriLicense ...

  9. AE调用GP工具(创建缓冲区和相交为例)

    引用 Geoprocessing是ArcGIS提供的一个非常实用的工具,借由Geoprocessing工具可以方便的调用ArcToolBox中提供的各类工具,本文在ArcEngine9.2平台环境下总 ...

随机推荐

  1. java工程资源文件夹嵌套建立!

    做过一遍忘了,找了半天!记这里,看你还忘不忘!

  2. Vmware linux 无法上网

    流程如下: 1)点击 VM->Settings Hardware选项卡下面 2)点击Network Adapter 设置如下图所示,首先我们在虚拟机中将网络配置设置成NAT, 3.进入Windo ...

  3. android.animation(1) - ValueAnimator的ofInt(), ofFloat(), addUpdateListener(), addListener()(转)

    一.概述 long long ago,我写过几篇有关Animation的文章,讲解了传统的alpha.scale.translate.rotate的用法及代码生成方法.其实这三篇文章讲的所有动画效果叫 ...

  4. 如何利用wireshark对TCP消息进行分析

    原文:https://www.cnblogs.com/studyofadeerlet/p/7485298.html 如何利用wireshark对TCP消息进行分析   (1) 几个概念介绍 1 seq ...

  5. XML-RPC使用手册

    内容列表 Preface: About This Manual Introduction to XML-RPC for C/C++ What is XML-RPC? How Does XML-RPC ...

  6. SenCha Touch 与 EXTJS 安装Myeclipse 插件

    http://www.cnblogs.com/jirimutu01/default.html 关于SenchaEclipsePlugin插件的安装和使用 使用过eclipse开发java程序的人都知道 ...

  7. C++和Java函数传递数组参数比较

    如果我想实现函数参数传递数组的业务需求,在Java中很容易实现,如下所示.因为Java有.length方法,可以获取数组的长度. public class Test { public static v ...

  8. repcached与mysql缓存測试

    使用gem安装mysql引擎 gem install mysql(假设安装失败.请查找一些依赖组建是否安装,比如mysql-devel) 编写ruby脚本,先获取mysql数据,之后从memcache ...

  9. 日期-date.js

    Date.prototype.format = function(format) { var o = { "M+" : this.getMonth() + 1, // 月 &quo ...

  10. php json包 Services_JSON-1.0.2 1 ---one