最近项目上决定使用华为的NAS,不得不说,华为的NAS照NetApp比起来,差距还是挺大的,至少NetApp提供了非常全面的各种语言实现的API,而且文档也非常的全面,可以非常容易的嵌入我们的系统中。而华为只有可怜的N8000命令行,并没有提供任何语言实现的API,这无疑给开发带来了很大的麻烦。最后商议决定,程序通过SSH协议远程执行华为的命令行。上网上简单看了一下,比较出名的第三方开源框架是JSCH,虽然网上已经有很多文章说明此框架的用法,但是在开发过程中仍然有一些小细节需要注意,特此Share一下,代码如下:
JSch jsch = new JSch();
String command = "storage pool free";
String host = "10.121.43.7";
String name = "master";
int port = 22;
String password = "!Q@W#E$R%T";
Session session = jsch.getSession(name,host, port);
Properties config = new Properties();
//设置不做检查
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
//设置密码
session.setPassword(password);
session.connect();
ChannelExec shell = (ChannelExec)session.openChannel("exec");
shell.setEnv("SFS_OUTPUT","xml");
shell.setCommand(command);
shell.connect();
InputStream inputStream = shell.getInputStream();
int index = -1;
byte[] buffer = new byte[1024];
ByteArrayOutputStream out = new ByteArrayOutputStream();
while(!shell.isClosed()){
while((index = inputStream.read(buffer, 0, buffer.length))!=-1){
out.write(buffer, 0, index);
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
out.flush();
out.close();
inputStream.close();
shell.disconnect();
session.disconnect();
String resultXml = new String(out.toByteArray());
System.out.println(resultXml);
需要注意的是代码的第十六行,此参数用于设置SSH协议的环境,华为的存储这点就比较恶心,如果不设置这个变量,那么默认给你返回的是文本,而不是XML,当初在这个位置上卡了好久,希望日后能方便众人。
分享到:
相关推荐
SecureCRSecureFXPortable连接linux系统的工具。
ssh工具 用于连接远程服务器 linux 系统 解压 安装即可使用
ssh连接linux客户端,可以帮助更好的从windows连接linux
本文主要介绍三种方法,在Mac下使用SSH连接远程Linux服务器。 方法一:使用终端 1.打开终端,点击新建远程连接 2.点击加号,然后添加自己服务器的IP地址 3.点击右侧的服务器,然后在下方输入用户名,选择最下方的 ...
连接Linux服务器工具SSH 3.2.9 方便快捷!
java实现ssh方式连接linux(包含ganymed-ssh2-build210.jar包) ---------Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!
远程ssh连接linux系统进行文件操作的程序
SSH连接Linux系统的文件便捷移动工具,连接上Linux系统后可以直接将文件移动到服务器上,无需任何脚本
在windows上通过ssh方式登录Linux终端,小巧易用。
ssh远程连接linux系统工具,免费,操作简单,命令行以及文件上传下载。本人用于远程云服务器,亲测很实用,推荐!!!
Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!
自制ssh连接管理脚本 linux
ssh连接Linux的利器,是本地连接远程Linux的客户端。就像FTP那样好用,支持命令和文件托拉的方式。
一款非常好用的连接linux系统的工具 操作非常简单
ssh连接linux实现上传下载实例及包
Windows远程SSH连接Linux服务器(xmanager说明书)
ssh连接慢解决办法(成功) 用真机连接虚拟机卡的话: 1.进入虚拟机vim /etc/ssh/sshd_config 2.将 #UseDNS yes改为UseDNS no即可如下: 使用/UseDNS找到地方然后添加 #UseDNS yes UseDNS no #PidFile /var/run/sshd....
可直接使用,里面有十几个DEMO,包括SSH,SCP,可直接作为SSH终端访问LINUX服务器;除非之外还可以使用已经封装好的类直接调用,操作封装在类SshExe。这些源码很简单,可直接用,很方便!!
实验环境: 物理机 Windows 10 x64 物理网卡信息 IPv4地址:192.168.123.205 子网掩码:255.255.255.0 默认网关:192.168.123.1 虚拟机VMware Workstation14 Cent OS 6.7 x64 VMnet8信息: IPv4地址:192.168.21.0 ...
SSH是用来远程连接LINUX系统的,直接输入IP地址和端口就可以连接,非常的方便,稳定性也比较好