需要引入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. 每日英语:Asia Has World's Biggest Pay Gap, Study Finds

    In Asia, middle managers such as department heads make more than 14 times as much as operational emp ...

  2. Debian7/8安装最新的nginx稳定版本

    我们知道,通过 apt-get install nginx 就可以安装上nginx,可惜这样安装的nginx版本都有些旧,就连最新的Debian 8.0 默认安装的仍然是1.6.2,更别说 Debia ...

  3. ssm开发系的统架构图

  4. java 远程调试 remote java application

    1.在本地eclipse中,打开debug configuration,在弹出的窗口中,点击左边的remote java application. 2.在右边的窗口中,输入项目名称.远程主机的地址和端 ...

  5. Linux(centOS)手动安装删除Apache+MySQL+PHP+Memcached原创无错版

    =================== 第一步:Apache安装 =================== 下载 去 http://www.apache.org 自己找最新的 国内有很多镜像点例如人人和 ...

  6. 【转】【iOS测试系列】常用测试小插件的使用

    背景介绍 由于iOS系统的限制,在非越狱的自动化测试中无法实现一些常用的功能,比如不同应用之间来回切换.模拟全局的点击事件等等.但是在越狱的环境下,这些限制就不存在了,我们可以利用各种小插件来实现我们 ...

  7. CSS旋转&翻转,兼容方案

    CSS代码,高级浏览器使用transform,ie用滤镜实现. 转自http://aijuans.iteye.com/blog/19364921 /*水平翻转*/ 2 .flipx { 3 -moz- ...

  8. Spring Framework 官方文档学习(三)之Resource

    起因 标准JDK中使用 java.net.URL 来处理资源,但有很多不足,例如不能限定classpath,不能限定 ServletContext 路径. 所以,Spring提供了 Resource ...

  9. 【BZOJ】1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1633 一开始也想到了状态f[i]表示i以后的字符串最少删的数 然后想到的转移是 f[i]=min{f ...

  10. 阿里Java开发手冊之编程规约

    对于程序猿来说,编程规范能够养成良好的编程习惯,提高代码质量,减少沟通成本.就在2月9号,阿里出了一份Java开发手冊(正式版),分为编程规约.异常日志.MySQL规约,project规约.安全规约五 ...