package com.sun.work;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.util.Properties;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
public class PipeStreamTest {
public static void main(String args[]){
try {
new PipeStreamTest().connect();
} catch (JSchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void connect() throws JSchException {
JSch jsch = new JSch();
Session session = jsch.getSession("test", "10.67.7.109", 22);
session.setPassword("SVNAdmin");
Properties prop = new Properties();
prop.setProperty("StrictHostKeyChecking", "no");// StrictHostKeyChecking:
// ask | yes | no
session.setConfig(prop);
session.connect();
Channel channel = session.openChannel("shell");
Sender t1 = new Sender();
Receiver t2 = new Receiver();
PipedInputStream pis1 = t2.getInputStream();
PipedOutputStream pos1 = t1.getOutputStream();
//如果是用控制台,可以这样设置。
// channel.setOutputStream(System.out);
// channel.setInputStream(System.in);
channel.setInputStream(pis1);
channel.setOutputStream(pos1);
try {
pos1.connect(pis1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t1.start();
t2.start();
channel.connect();
}
class Sender extends Thread {
private PipedOutputStream out = new PipedOutputStream();
public PipedOutputStream getOutputStream() {
return out;
}
public void run() {
String s = "ls -F";
try {
out.write(s.getBytes());
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Receiver extends Thread {
private PipedInputStream in = new PipedInputStream();
public PipedInputStream getInputStream() {
return in;
}
public void run() {
byte[] buf = new byte[10240];
try {
while(in.read()!=-1){
int len = in.read(buf);
System.out.println(len);
String s = new String(buf, 0, len);
System.out.println(s);
//in.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
- 浏览: 523648 次
- 性别:
- 来自: 北京
最新评论
-
hyspace:
别逗了,最后一个算法根本不是最优的,sort(function ...
数组去重——一道前端校招试题 -
washingtin:
楼主能把策略和路由的类代码贴出来吗
Spring + iBatis 的多库横向切分简易解决思路 -
sdyjmc:
初略看了一下,没有闹明白啊,均衡负载使用Nginx,sessi ...
J2EE集群原理 I -
shandeai520:
谢谢大神!请教大神一个问题:假如我有三台服务器,连接池的上限是 ...
集群和数据库负载均衡的研究 -
hekuilove:
给lz推荐一下apache commonsStringUtil ...
request 获取 ip
相关推荐
linux下远程执行命令脚本,可传密码,提升权限
这个“远程shell调用.rar”文件包含了一个基于Java的工具,它允许开发者通过SSH连接到Linux服务器并执行Shell脚本,从而简化了这一过程。 首先,让我们了解一下SSH2。SSH2是SSH协议的第二版,相比SSH1,它提供了更...
在IT行业中,远程调用Linux命令是常见的操作,特别是在分布式系统和自动化运维中。这篇名为“远程调用Linux命令的demo”的文章可能介绍了一种或多种实现方式,让我们通过标签和文件名来推测可能涉及的知识点。 首先...
Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...
在IT领域,远程调用可视化界面对于Linux系统管理员和开发者来说是至关重要的,尤其是在处理图形化应用程序时。本文将详细讲解如何使用Xming免安装版本与Xshell配合,实现从本地Windows系统远程调用Linux服务器的可视...
易语言调用SSH2演示源码,调用SSH2演示,libssh2_userauth_password,libssh2_channel_open_session,libssh2_channel_exec,libssh2_channel_read,libssh2_session_disconnect,accept,AcceptEx,bind,closesocket,connect...
Python调用SSH命令主要涉及到的是远程服务器操作,通常用于自动化运维、部署任务或者进行系统间的交互。SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地执行远程命令。在Python中,我们可以使用多种...
3. **SSH远程调用**:利用SSH实现对远程机器上程序和服务的安全调用,支持基于用户的细粒度权限控制。 通过这种方式,不仅解决了进程唯一标识的问题,还简化了远程通信的实现,为构建分布式系统提供了一种可行且...
### Linux系统通过SSH协议调用图形化界面 #### 背景介绍 在日常工作中,我们经常需要远程访问Linux服务器来进行管理和操作。传统的SSH连接仅支持命令行模式,但有时我们需要进行图形化界面操作,例如运行图形化...
Ganymed SSH-2支持SSH对话(远程命令执行和shell访问),本地和远程端口转发,本地数据流转发,X11转发和SCP。这些都没有依赖任何JCE provider,而且所有这些都包含加密的功能。该资源是java远程连接ssh服务器的实例...
java调用远程ssh代码示例
Java 远程调用Shell脚本客户端包是一个实用的工具,专为开发者设计,使得在Java应用程序中执行远程Shell命令变得简单而高效。这个包的主要功能是通过Java代码发起对远程服务器上的Shell脚本的调用,从而实现跨平台的...
两个项目均为maven项目,klpserver为服务端,klpclient为客户端.服务端项目要使用"已存在的maven项目"导入,客户端直接使用"已存在的java工程导入"即可.不需要的配置如数据库连接信息可以注释掉,运行时,直接运行服务端...
struts2.3.4+spring3.2.0+hibernate4+hibernate_generic_dao struts hibernate spring最大化使用注释 基于spring的远程调用
本教程将详细讲解如何使用C#通过SSH(Secure Shell)协议来调用Linux终端并实现文件上传。 SSH是一种网络协议,用于安全地远程登录到Linux或Unix服务器,执行命令,以及传输文件。C#中可以借助第三方库,如SSH.NET...
1. **ASP.NET编程**:ASP.NET开发者需要了解如何在C#或VB.NET代码中使用Granados库,创建SSH连接,设置认证信息(如用户名、密码或密钥对),然后调用远程shell命令。这通常涉及到使用`Granados.Ssh`命名空间中的类...
在Qt中,这可以通过调用SSH库的相应函数来实现,例如创建一个会话,打开一个shell通道,发送命令,然后读取命令输出。 项目提供了测试例子和界面,意味着它包含了一个完整的Qt Pro工程,可以使用Qt Creator或VSQT...
QT实现SSH和SFTP是基于Qt框架的网络通信技术,主要应用于远程服务器的访问和文件传输。在本文中,我们将深入探讨如何使用QT库来实现SSH(Secure Shell)和SFTP(Secure File Transfer Protocol)功能,以及如何在...
该工具是基于SSH2协议的实现,在使用它的过程中非常容易,只需要指定合法的用户名口令,或者授权认证文件,就可以创建到远程Linux主机的连接,在建立起来的会话中调用该Linux主机上的脚本文件,执行相关操作。
java通过ssh调用centos7指令,获取磁盘空间使用率、磁盘空间使用情况、网络使用情况,CPU使用率,内存使用率